From c2406a9c81dc34fa7998c1611573fd308d8d3317 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 02:32:29 -0400 Subject: [PATCH 001/501] feat: select managed admin development component --- .../host-configs/development-workstation.json | 19 +++++++++++++++++-- scripts/verify-platform.mjs | 10 ++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index b5ab5c67..5f52c695 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "development-workstation", - "generation": 10, + "generation": 11, "host": { "id": "adrian-workstation", "role": "integrated", @@ -33,7 +33,8 @@ "POSTGRES_USER": "treeseed", "POSTGRES_DB": "treeseed_api", "TREESEED_API_BASE_URL": "https://api.treeseed.localhost", - "TREESEED_SITE_URL": "https://api.treeseed.localhost", + "TREESEED_SITE_URL": "https://admin.treeseed.localhost", + "TREESEED_API_AUTH_APPROVAL_BASE_URL": "https://admin.treeseed.localhost", "TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST": "adrian.webb@knowledge.coop", "TREESEED_MAILPIT_SMTP_HOST": "mailpit", "TREESEED_MAILPIT_SMTP_PORT": "1025", @@ -51,6 +52,20 @@ } } }, + "admin": { + "enabled": true, + "track": "development", + "aliases": { "admin.admin.http": "admin.treeseed.localhost" }, + "connections": { + "api": { "kind": "local", "componentId": "api", "serviceId": "api", "endpointId": "http" } + }, + "configuration": { + "environment": { + "NODE_ENV": "production", + "TREESEED_SITE_URL": "https://admin.treeseed.localhost" + } + } + }, "agent": { "enabled": true, "track": "development", diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index b4d16e8a..c6e6fc6f 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -50,17 +50,18 @@ for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCre const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || !host.runtime?.dataRoot?.endsWith('/platform/.treeseed/data')) fail('Development workstation must use the current integrated managed-host contract and workspace-visible data root.'); if (host.updates?.defaultTrack !== 'development' || host.updates?.stable?.maintenanceWindow?.weekday !== 'sunday' || host.updates?.stable?.maintenanceWindow?.localTime !== '03:00') fail('Development workstation must poll development while preserving the stable weekly activation policy.'); -for (const componentId of ['api', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); +for (const componentId of ['api', 'admin', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); const aliases = [host.network?.manager?.aliases ?? [], ...Object.values(host.components ?? {}).flatMap((component) => Object.values(component.aliases ?? {}))].flat(); if (aliases.length !== new Set(aliases).size || aliases.some((alias) => !/^[a-z0-9.-]+\.localhost$/u.test(alias))) fail('Local aliases must be unique and remain in the .localhost namespace.'); const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => Object.keys(component.aliases ?? {})); if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+$/u.test(key))) fail('Alias overrides must use full component.service.endpoint identities.'); if (!host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('Codex custody must use the named manager secret rather than an embedded login cache.'); -if (host.generation !== 10) fail('Development workstation must use configuration generation 10.'); +if (host.generation !== 11) fail('Development workstation must use configuration generation 11.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); -if (host.components?.api?.configuration?.environment?.TREESEED_SITE_URL !== 'https://api.treeseed.localhost' +if (host.components?.api?.configuration?.environment?.TREESEED_SITE_URL !== 'https://admin.treeseed.localhost' + || host.components?.api?.configuration?.environment?.TREESEED_API_AUTH_APPROVAL_BASE_URL !== 'https://admin.treeseed.localhost' || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_HOST !== 'mailpit' || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_PORT !== '1025') fail('A fresh workstation must route account confirmation through the managed Lab Mailpit service.'); const brokerSecret = 'treedx-credential-broker-assertion'; @@ -82,7 +83,8 @@ if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_ISSUER || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_AUDIENCE !== treeDxAudience || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ALLOWED_ALGS !== 'RS256') fail('API and TreeDX must share the generation 7 RS256 issuer, audience, and private JWKS discovery contract.'); if (host.components?.agent?.connections?.['control-plane']?.kind !== 'local' || host.components?.treedx?.connections?.['control-plane']?.kind !== 'local') fail('Integrated Agent and TreeDX components require explicit local control-plane connections.'); -if (JSON.stringify(aliases.sort()) !== JSON.stringify(['api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the canonical local aliases.'); +if (host.components?.admin?.connections?.api?.kind !== 'local') fail('Managed Admin requires an explicit local or remote API connection.'); +if (JSON.stringify(aliases.sort()) !== JSON.stringify(['admin.treeseed.localhost', 'api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the canonical local aliases.'); const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider-development.json')); if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); From bfa8a3affeedffbbf1fb0c1e2d19c629351e0952 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 10:41:29 -0400 Subject: [PATCH 002/501] chore(platform): select Admin platform RC artifacts --- deployment/integration-releases/development.json | 15 ++++++++++----- scripts/verify-platform.mjs | 3 ++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f1caf280..fba976b2 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,23 +1,28 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc79", - "generation": 54, + "release": "0.1.0~rc81", + "generation": 55, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "b4ae096f8838a9acff4f6e775289ff503d478f22" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "41b07f44a3b1ddb71b3b68578843868bd4db0c79", "tag": "0.1.0-rc.79" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.38", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.38.tgz", "sha256": "afe26c7f48ef180679c7983e7dc4bbb21e2a8745fd470b2d3441b4512f04cdef" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.39", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.39.tgz", "sha256": "7895b4489f7968dd4f59cdaca6a85564d118d5dbec3ba3d4f5d2653b6adf735b" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.5", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.5.tgz", "sha256": "577076c10cc0624f8d7d48654d3cd50812297d729658958359355d70aef477ce" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.23", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.23.tgz", "sha256": "7e10d0f64a7a0b9ae042f5a19eed82e90bccf41d10140eeafe17769811fc9ba7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc37-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.37/component-release.json", "sha256": "4fb2fe3fefe43c4c9d87b3560b23d33bdf441f54b15563b46328075bd70634a8" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.37/compose.yml", "sha256": "7d6d58107a19f2761547d806d83de6b3c78da3a01d14821f080bb7d428951306" } }] }, + { "componentId": "api", "release": "0.8.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/component-release.json", "sha256": "2f9216c71f125ab29ebe4d469781ce2935db1726b733289106fcd1779478118c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/compose.yml", "sha256": "d37224f83c807fcf3fc2c74f345c6e64099953b17ec16b901d81e491f172bd0f" } }] }, + { "componentId": "admin", "release": "0.12.59~rc5-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.5/component-release.json", "sha256": "cbab7076d308a579ff2c91f978a0e3d9d2ee16e159ad2ccfa7dd2c98334762b4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.5/compose.yml", "sha256": "d62edc1c23c08e38931b615e649a149bd6d685a58a4f5e669a7d23916722e572" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T05:30:00.000Z" + "createdAt": "2026-08-26T14:39:31.000Z" } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index c6e6fc6f..2e2dd28d 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,7 +94,8 @@ const developmentIntegration = JSON.parse(read('deployment/integration-releases/ if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); if (developmentIntegration.platform?.commit !== stableIntegration.platform?.commit || developmentIntegration.deployment?.commit !== stableIntegration.deployment?.commit) fail('Stable and development locks must identify the same reviewed Platform and Deployment sources.'); -if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['agent', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact API, Agent, TreeDX, and Lab component set.'); +if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'cli', 'core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload set.'); +if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, and Lab component set.'); for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); for (const component of developmentIntegration.components ?? []) { if (!/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || component.files?.some(({ artifact }) => !/^[a-f0-9]{64}$/u.test(artifact?.sha256 ?? ''))) fail(`Component ${component.componentId} is not fully digest locked.`); From c985860c98f276b1502495a26c10869503f01637 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 10:48:07 -0400 Subject: [PATCH 003/501] chore(platform): bind deployment rc81 --- deployment/integration-releases/development.json | 4 ++-- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index fba976b2..08a3ae0c 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -4,8 +4,8 @@ "generation": 55, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b4ae096f8838a9acff4f6e775289ff503d478f22" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "41b07f44a3b1ddb71b3b68578843868bd4db0c79", "tag": "0.1.0-rc.79" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "bb1f4f4704ce7d7baaeae47fecf6fb7a295c2eac" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "859b9e53d7dbca695df23f8015fb3d22ef0dbf38", "tag": "0.1.0-rc.81" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.39", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.39.tgz", "sha256": "7895b4489f7968dd4f59cdaca6a85564d118d5dbec3ba3d4f5d2653b6adf735b" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index f11dbf13..464d7548 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b4ae096f8838a9acff4f6e775289ff503d478f22" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "41b07f44a3b1ddb71b3b68578843868bd4db0c79", "tag": "0.1.0-rc.79" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "bb1f4f4704ce7d7baaeae47fecf6fb7a295c2eac" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "859b9e53d7dbca695df23f8015fb3d22ef0dbf38", "tag": "0.1.0-rc.81" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From df1b2283785a6566f135664c1a78794149a2d72e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 10:53:05 -0400 Subject: [PATCH 004/501] fix(platform): use Admin component default alias --- deployment/host-configs/development-workstation.json | 1 - scripts/verify-platform.mjs | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 5f52c695..0e7ea365 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -55,7 +55,6 @@ "admin": { "enabled": true, "track": "development", - "aliases": { "admin.admin.http": "admin.treeseed.localhost" }, "connections": { "api": { "kind": "local", "componentId": "api", "serviceId": "api", "endpointId": "http" } }, diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 2e2dd28d..084ff4c3 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -84,7 +84,8 @@ if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_ISSUER || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ALLOWED_ALGS !== 'RS256') fail('API and TreeDX must share the generation 7 RS256 issuer, audience, and private JWKS discovery contract.'); if (host.components?.agent?.connections?.['control-plane']?.kind !== 'local' || host.components?.treedx?.connections?.['control-plane']?.kind !== 'local') fail('Integrated Agent and TreeDX components require explicit local control-plane connections.'); if (host.components?.admin?.connections?.api?.kind !== 'local') fail('Managed Admin requires an explicit local or remote API connection.'); -if (JSON.stringify(aliases.sort()) !== JSON.stringify(['admin.treeseed.localhost', 'api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the canonical local aliases.'); +if (Object.keys(host.components?.admin?.aliases ?? {}).length) fail('Managed Admin must use its component-owned canonical alias rather than a forbidden host override.'); +if (JSON.stringify(aliases.sort()) !== JSON.stringify(['api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the permitted local alias overrides.'); const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider-development.json')); if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); From 7e3e9a85794b5252fe8c39003428452065c8896e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 10:58:21 -0400 Subject: [PATCH 005/501] chore(platform): select deployment rc82 recovery --- deployment/integration-releases/development.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 08a3ae0c..5d90f53e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc81", - "generation": 55, + "release": "0.1.0~rc82", + "generation": 56, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "bb1f4f4704ce7d7baaeae47fecf6fb7a295c2eac" }, @@ -24,5 +24,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T14:39:31.000Z" + "createdAt": "2026-08-26T14:58:02.000Z" } From fa13fe47869758504b1053ecfe6ed630d71ec709 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 16:19:48 -0400 Subject: [PATCH 006/501] feat: define managed development sessions --- development.session.yaml | 23 + docs/dev-release.md | 728 +++++++++++++++++++++++++ package.json | 1 + scripts/verify-development-workflow.ts | 54 ++ 4 files changed, 806 insertions(+) create mode 100644 development.session.yaml create mode 100644 docs/dev-release.md create mode 100644 scripts/verify-development-workflow.ts diff --git a/development.session.yaml b/development.session.yaml new file mode 100644 index 00000000..d9eb6fc4 --- /dev/null +++ b/development.session.yaml @@ -0,0 +1,23 @@ +schemaVersion: treeseed.development-selection/v1 +projects: + - manifest: packages/sdk/treeseed.package.yaml + worktree: packages/sdk + targets: [{ id: package, mode: released }] + - manifest: packages/ui/treeseed.package.yaml + worktree: packages/ui + targets: [{ id: package, mode: released }, { id: sandbox, mode: released }] + - manifest: packages/core/treeseed.package.yaml + worktree: packages/core + targets: [{ id: package, mode: released }] + - manifest: packages/api/treeseed.package.yaml + worktree: packages/api + targets: [{ id: service, mode: released }, { id: operations-runner, mode: released }] + - manifest: packages/admin/treeseed.package.yaml + worktree: packages/admin + targets: [{ id: web, mode: released }] + - manifest: packages/agent/treeseed.package.yaml + worktree: packages/agent + targets: [{ id: provider, mode: released }] + - manifest: packages/reviewer/treeseed.package.yaml + worktree: packages/reviewer + targets: [{ id: companion, mode: released }] diff --git a/docs/dev-release.md b/docs/dev-release.md new file mode 100644 index 00000000..c2f6f07c --- /dev/null +++ b/docs/dev-release.md @@ -0,0 +1,728 @@ +# Development and Platform Release Architecture + +## Status and purpose + +This document defines the target architecture for fast local development, candidate verification, independent project release, Platform composition, and managed-host activation across TreeSeed projects. + +It complements [Standards-Based Independent Development](./standards-dev.md), [Reconciliation Platform](./reconciliation-platform.md), [Package Ownership](./package-ownership.md), and Deployment's [host architecture](../packages/deployment/docs/architecture.md). Where an older document requires Git-source staging, sibling source propagation, or a full published release before interactive testing, this document and `standards-dev.md` supersede that requirement. + +TreeSeed must support two needs without weakening either one: + +1. developers need a fast, real-time loop for API, UI, library, agent, and background-process work; and +2. operators need immutable, digest-bound releases that the Platform manager can verify, activate, repeat, roll back, and promote. + +The development system is therefore an input to the release system, not an alternative release system. A live development session may prove that an idea works. Only frozen candidate artifacts and an accepted Platform composition may prove that a release works. + +## Goals + +- Preserve independently owned repositories, contracts, versions, builds, tests, and releases. +- Allow UI changes to reach a browser in seconds without publishing npm packages or container images. +- Allow an API and its UI consumer to be developed together against real authentication, account, team, and application state. +- Allow agents and background processes to be compiled locally and exercised through safe drain, restart, and health boundaries. +- Keep stable hostnames, API connections, OAuth callbacks, cookies, Mailpit links, and managed service dependencies while selected components run from local source. +- Let SDK, UI, Core, and similar libraries update live consumers without treating incomplete build output as valid. +- Convert a successful development closure into immutable candidate packages and images without changing its source. +- Retain standards contract comparison, package acceptance, integrated guarantees, exact artifact selection, rollback, and promotion as release gates. +- Restore the last known-good managed composition automatically when a development session ends or fails. + +## Non-goals + +- Development mode is not production deployment or staging promotion. +- A source mount, workspace link, dirty worktree, hot reload, fixture, or successful process is not release evidence. +- The manager does not become the build or version owner for member projects. +- Platform does not fetch writable project source on behalf of a development session. +- Development Compose files do not replace packaged production Compose bundles. +- The development system does not bypass API authority, OAuth policy, database migration review, assignment leases, provider capacity, or branch protection. +- Not every project needs a development container. Libraries normally publish watched package output rather than run a service. +- Hot reload is not required or permitted for runtimes whose correctness depends on process initialization, leases, durable cursors, or native state. + +## Architectural principles + +1. **One manager, two evidence classes.** The manager may coordinate both development and release runtimes, but it records them as different kinds of state. +2. **Project-owned recipes.** Each repository declares how it builds, watches, reloads, restarts, verifies, freezes, and cleans its development targets. +3. **Stable integration boundaries.** Hostnames, service identities, ports, connection IDs, authentication behavior, and API authority remain stable while an implementation changes underneath them. +4. **Smallest affected closure.** A change reloads or rebuilds only declared consumers and dependencies. +5. **Explicit reaction semantics.** Dependency edges declare `reload`, `restart`, `rebuild`, `stale`, or `manual`; the manager never assumes all dependents must restart. +6. **State is protected separately from code.** Live code replacement never implies an automatic database migration, assignment cancellation, or durable-state reset. +7. **Source is exploratory; artifacts are admissible.** Linked output can accelerate development, but cross-project verification uses packed packages, built images, or other immutable candidate artifacts. +8. **Same-origin development by default.** The manager preserves canonical local hostnames so OAuth, cookies, redirects, CORS, and browser security behavior remain representative. +9. **Fail closed and restore.** An invalid recipe, incomplete output, failed health gate, expired session, or unsafe replacement restores or retains the known-good release. +10. **Promotion never rebuilds.** The artifacts accepted from the frozen candidate closure are the artifacts published and selected by Platform. + +## The two planes + +### Development plane + +The development plane operates on a named, time-bounded session associated with explicit local repository worktrees. It may use: + +- file watching and incremental compilation; +- local package output; +- development-only Compose `build` directives; +- source mounts or synchronized source; +- hot module replacement; +- bounded process restart; +- locally built container images; +- disposable or cloned development state; +- focused tests and browser scenes. + +Every development runtime is visibly marked non-promotable until it is frozen. The manager records the worktree identity, source commit, dirty-state digest, recipe digest, dependency closure, active modes, endpoints, and health observations. + +### Release plane + +The release plane consumes only immutable artifacts: + +- npm tarballs with exact versions, integrity, and SHA-256; +- OCI images with immutable multi-platform digests; +- local-tool archives with SHA-256; +- normalized contract bundles and compatibility attestations; +- component manifests and production Compose files by exact URL and digest; +- Platform integration releases with exact artifact and component selections; +- signed Deployment catalogs and Debian packages. + +Production Compose bundles continue to reject source mounts, `build` directives, mutable image references, undeclared ports, and missing health gates. A development feature must never relax those checks in the release path. + +## Runtime modes + +Each selected development target has exactly one active mode: + +| Mode | Source | Typical use | Promotion status | +| --- | --- | --- | --- | +| `released` | Platform-selected immutable artifact | Normal managed operation and comparison baseline | Admissible | +| `candidate` | Locally built immutable package, image, archive, or executable with digest | Integrated testing before publication | Admissible after verification | +| `live` | Watched local source or generated output | Interactive development and exploratory design | Never admissible directly | + +A host may mix modes. For example: + +```text +SDK live package build +UI live package build +Core live package build +Admin live Astro service +API live Node service +Agent candidate manager/runner images +TreeDX released service image +Postgres released managed state service +``` + +Mode selection is per target, not per host. Unaffected components remain on the exact known-good release. + +## Development runtime federation contract + +Projects opt in through a versioned `development` section in `treeseed.package.yaml`. The SDK owns the portable schema. The project owns the declared commands, Compose file, build outputs, health behavior, and verification entrypoints. Deployment and the manager consume the schema without embedding project-specific rules. + +An illustrative manifest is: + +```yaml +development: + schemaVersion: treeseed.development-runtime/v1 + targets: + - id: package + kind: package-watch + command: npm run build:watch + ready: + kind: marker + path: dist/.treeseed-build-complete.json + outputs: + - path: dist + mediaType: application/vnd.treeseed.node-package + freeze: + command: npm pack --json + artifact: "*.tgz" + consumers: + admin: reload + api: rebuild + agent: rebuild + + - id: service + kind: compose-service + composeFile: deploy/compose.development.yml + composeService: admin + buildTarget: development + endpoint: + id: http + port: 4322 + canonicalAlias: admin.treeseed.localhost + healthPath: /healthz + reaction: hot-reload + dependencies: + - id: api + capability: control-plane-api + locality: either + statePolicy: stateless + freeze: + kind: oci-image + dockerfile: Dockerfile + target: production +``` + +The final schema must support: + +- stable target ID and kind; +- supported platforms and runtime requirements; +- source roots and ignored paths; +- setup, watch, build, start, stop, freeze, verify, and cleanup operations; +- development Compose identity when applicable; +- atomic build-completion markers; +- endpoints, aliases, health gates, and connection requirements; +- dependency reactions; +- state and migration policy; +- secret and file bindings by reference, never value; +- shutdown, drain, cancellation, and replacement behavior; +- artifact outputs and digest algorithms; +- timeout and resource bounds; +- log and diagnostic locations; +- forbidden operations and promotion constraints. + +Unknown target kinds, undeclared commands, ambiguous outputs, unsafe paths, missing health gates, or unsupported manager capabilities fail before runtime mutation. + +## Development target kinds + +### Package watch + +`package-watch` is intended for SDK, UI, Core, and other libraries. It runs an atomic incremental build and publishes completed output into a session-owned package overlay. + +The manager must not expose a half-written `dist` tree. A package watcher writes into a temporary generation, verifies required exports and its completion marker, and atomically selects that generation. Consumers observe only completed generations. + +There are two consumption levels: + +1. **exploratory link:** a consumer resolves the session package overlay for rapid reload; this is non-admissible preview state; and +2. **packed candidate:** the project freezes an npm tarball, records integrity and SHA-256, and the consumer installs that immutable candidate for verification. + +The existing Core build-aware watcher is the reference behavior: dependency output completion invalidates the transformed client and SSR module graph only after the build is stable. + +### Live web service + +`live-web` runs an application server with browser-oriented hot reload. Admin and other Astro applications use this target. + +The manager: + +- stops or disconnects the released service instance for the selected component; +- preserves the component's canonical local hostname; +- routes edge traffic to the development service; +- injects manager-resolved service connections and public runtime configuration; +- verifies the same readiness path used by the released component; +- watches dependency output and reloads only after completed builds; +- records that responses come from a live source closure; +- restores the released service when the development lease ends. + +Keeping `admin.treeseed.localhost` stable preserves the exact `treeseed-admin` OAuth callback, secure cookies, same-origin return paths, device verification URLs, email-confirmation links, and browser security policy. Development does not introduce a generic OAuth redirect exception. + +### Live API service + +`live-api` runs an API from watched source with bounded restart semantics. API processes may use Node watch, an application-owned supervisor, or a development container, but the manager retains the canonical API hostname and health contract. + +An API change may regenerate OpenAPI and catalog output automatically. Admin and CLI can then exercise the new endpoint without publishing an API image. A restart is accepted only after readiness succeeds. If readiness fails, the manager retains logs, reports the candidate as degraded, and restores the released API unless the session explicitly requests a debugging hold. + +Database schema changes follow the state policies below and never apply merely because a migration file changed. + +### Rebuild-and-restart service + +`rebuild-restart` is intended for Agent, operations runners, TreeDX, AI runtimes, and other processes whose initialization or durable protocol state makes hot reload unsafe. + +On source change or explicit rebuild, the manager: + +1. builds a local image or executable in the owning repository; +2. records the exact source closure and artifact digest; +3. checks replacement preconditions; +4. drains or stops the old runtime through its declared protocol; +5. activates the candidate; +6. verifies health, registration, provider availability, and other declared postconditions; +7. retains the prior immutable runtime for restoration. + +Agent replacement blocks while assignments or leases are active unless they complete, are safely transferred by a declared protocol, or an authorized user explicitly cancels them. A process kill is not a substitute for API-owned lease and settlement behavior. + +### Local companion + +`local-companion` covers Reviewer and similar loopback-only applications. It binds only to loopback, receives no managed public route, and may consume released or candidate CLI/SDK/UI packages. The manager may supervise lifecycle and logs without turning the companion into a hosted component. + +## Development Compose contract + +A service project may own `deploy/compose.development.yml` or another path declared in its manifest. Unlike production Compose, the development file may contain: + +- `build` with a development target; +- source mounts or synchronized source; +- development commands; +- debug ports explicitly marked loopback-only; +- development-only caches and disposable volumes; +- file-watch rules that map to reload or rebuild behavior. + +It must not contain: + +- reusable credentials or secret values; +- an undeclared host-wide port; +- access to the manager or root-supervisor control socket; +- the host Docker socket inside a project container; +- broad home-directory, workspace-root, credential-directory, or unrelated repository mounts; +- mutable production state volumes without an explicit shared-state policy; +- production aliases not granted by the manager session; +- commands outside the owning project's declared development operations. + +The manager materializes a session-specific Compose overlay with resolved networks, dependency endpoints, secrets, source paths, labels, and resource limits. Project Compose does not choose global networks or canonical aliases directly. + +Libraries normally do not have a development Compose file. A container is added only when it supplies a real runtime boundary, not to make every package look uniform. + +## Dependency graph and reactions + +The manager compiles development dependencies from produced and consumed standards, package dependencies, runtime component dependencies, and the active session selection. Every edge declares one reaction: + +| Reaction | Meaning | +| --- | --- | +| `reload` | Consumer can reload completed dependency output without process replacement. | +| `restart` | Consumer process must restart against the new dependency generation. | +| `rebuild` | Consumer artifact must be rebuilt before it can use the dependency. | +| `stale` | Consumer may keep running, but verification is invalid until refreshed. | +| `manual` | Change may be incompatible or operationally costly; report it and await selection. | +| `none` | Dependency change does not affect the selected runtime target. | + +The reaction is directional. A UI build may reload Admin without affecting API. An SDK TypeScript-only change may rebuild CLI while leaving a running API untouched. An SDK wire-contract change may mark API, Admin, CLI, and Agent stale without automatically restarting all of them. + +Cycles in build-time development dependencies remain forbidden. A detected cycle is a contract-ownership defect, not permission for recursive rebuilding. + +## Development sessions and leases + +A development session is the unit of ownership and cleanup. It contains: + +- session ID, actor, host, and creation/expiry time; +- repository identities, worktree paths, commits, and dirty-state digests; +- selected targets and modes; +- resolved dependency graph and reactions; +- endpoint and route leases; +- state policies and migration decisions; +- secret references and connection bindings; +- current build generations and candidate digests; +- health, logs, warnings, blockers, and restoration state. + +Only one session may own a canonical hostname or managed component target at a time. Additional sessions use explicit session aliases such as `admin..treeseed.localhost`, or remain loopback-only. Canonical alias ownership is acquired atomically before a released route changes. + +Leases are time-bounded and renewable. Expiry initiates safe detach and restoration. An active debugging hold may delay automatic restoration of a failed live process but may not keep an expired route, secret, or state lease. + +The manager continuously reconciles released components that are not leased. For a leased target it verifies the development session contract instead of fighting the local process. A development lease never pauses host security updates, unrelated components, or the manager itself. + +## Command model + +The CLI should expose project-neutral commands backed by the SDK development-session contract. Illustrative commands are: + +```bash +trsd dev session start +trsd dev use sdk=live ui=live core=live admin=live api=live +trsd dev use agent=candidate +trsd dev rebuild agent +trsd dev status --all --json +trsd dev logs --target admin --follow +trsd dev plan --affected --json +trsd dev freeze +trsd dev verify +trsd dev session stop --restore +``` + +Existing `trsd dev start --web-runtime local` behavior should converge on this session model rather than remain a separate supervisor. Target filters must compile the smallest dependency closure. Known behavior where an app-only restart selects unrelated TreeDX or provider resources must be corrected and regression-tested before it is used as the general development control plane. + +Every mutation follows the normal lifecycle: + +```text +refresh -> plan -> validate -> apply -> refresh -> verify -> persist +``` + +Human-readable output is derived from the same versioned JSON result returned to automation. + +## Routing, connectivity, and service identity + +The manager-owned edge remains the only owner of canonical local ingress. Development services register endpoints; they do not edit Caddy directly. + +When a released service is replaced by a live or candidate target: + +1. validate the development target and health contract; +2. start it on a session-scoped internal or loopback endpoint; +3. verify readiness directly; +4. atomically switch the canonical edge route; +5. verify readiness through the canonical hostname; +6. retain the released service and route data for restoration. + +Connections continue to resolve through component capability and endpoint IDs. For example, Admin's `api` dependency still becomes `TREESEED_API_BASE_URL`, whether API is released, candidate, live, local, or remote. Consumers must not branch on implementation mode. + +Databases, workers, runners, raw inference services, and control sockets remain private unless their contract explicitly declares a host endpoint. Development mode is not permission to publish them. + +## State and migration policies + +Code mode and state mode are independent selections. Stateful development targets declare one of: + +| Policy | Behavior | +| --- | --- | +| `stateless` | Target owns no durable state. | +| `ephemeral` | Create disposable state and destroy it on cleanup. | +| `clone` | Create a bounded development copy from an approved source. | +| `shared-compatible` | Use managed development state only while schema and mutation policies remain compatible. | +| `isolated-persistent` | Retain a session-owned state volume for repeated development. | + +`ephemeral` is the default for incompatible API schema work. `clone` is preferred when realistic account/team data is needed without risking the managed development database. `shared-compatible` is opt-in and requires: + +- no destructive or backward-incompatible migration; +- a declared schema compatibility range; +- migration plan and postcondition checks; +- backup/restore policy where material; +- proof that the released runtime can resume against the resulting state. + +A changed migration file marks the target blocked or migration-pending. It does not auto-apply to shared state. Migration apply remains a distinct, reviewed manager operation. + +API remains the durable owner of identity, teams, permissions, sessions, tokens, audit, capacity, assignments, and workdays in every mode. UI or Agent development never substitutes local browser or worker state for API records. + +## Secrets, authority, and isolation + +- Manifests name secret references but never contain secret values. +- The manager injects only secrets required by the selected target and removes bindings on detach. +- Browser JavaScript never receives API access tokens, refresh tokens, provider credentials, or manager credentials. +- Development Admin retains the production-shaped HttpOnly cookie and CSRF boundary. +- Development API and Agent runtimes receive no broader authorization than their released counterparts. +- Agent tools remain assignment-scoped; a locally built runner receives the same frozen authority and cancellation boundary as a released runner. +- Source mounts are read-only unless the target explicitly owns generated output beneath that repository. +- A development runtime cannot mount another repository merely because it consumes that project's contract. +- Root operations remain behind the fixed Deployment supervisor protocol. Project development commands run unprivileged and cannot introduce arbitrary root commands. +- Logs, status, receipts, and errors redact declared secret and credential paths. + +## Source closure and build generations + +A live source closure records: + +- canonical repository identity; +- current commit and branch; +- dirty path list and content digest without recording secret content; +- development manifest and recipe digest; +- dependency source or artifact generations; +- toolchain and runtime versions; +- generated output marker and digest; +- selected configuration digest. + +Dirty worktrees are allowed in `live` mode and forbidden as release evidence. A file event does not become a generation until the owning build completes and its output passes structural checks. Failed or interrupted builds retain the prior completed generation. + +The manager does not infer semantic compatibility from timestamps. It reports which consumers are reloaded, rebuilt, stale, or blocked for each new generation. + +## Package-specific development profiles + +### SDK + +- Kind: `package-watch`. +- Produces compiled public entrypoints, schemas, catalog output, and contract tooling. +- Pure implementation changes reload compatible consumers only where supported. +- Public contract changes mark declared consumers stale until compatibility comparison runs. +- Freeze produces an npm tarball and normalized contract bundle. + +### UI + +- Kind: `package-watch` plus its package-owned sandbox. +- The sandbox is the fastest loop for components, tokens, responsive states, accessibility, forced colors, and interaction. +- Completed UI output reloads Admin and other web consumers. +- Fixtures are presentation evidence only; integrated journeys still require a real consumer. +- Freeze produces an npm tarball, public-export contract, and presentation catalog. + +### Core + +- Kind: `package-watch` and reusable web runtime development support. +- Owns stable build-aware reload coordination for web consumers. +- May run fixture applications, but does not take ownership of Admin behavior. +- Freeze produces an npm tarball and site/plugin/runtime contract bundle. + +### Admin + +- Kind: `live-web`, using the managed Node runtime target. +- Retains `admin.treeseed.localhost`, port `4322`, `/healthz`, and the configured API connection. +- Consumes live or candidate SDK/UI/Core packages through the session overlay. +- May use the real managed API, an API candidate, or a live API target without changing browser route contracts. +- Freeze builds the standalone application, npm artifact, production image, SBOM, and component release assets. + +### API + +- Kind: `live-api` and `rebuild-restart` for production-shaped image testing. +- Retains API hostname, OAuth issuer, PostgreSQL authority, operations-runner relationship, and readiness path. +- Supports ephemeral, cloned, or explicitly compatible shared database state. +- Freeze builds exact API and operations-runner images, OpenAPI/event bundles, SBOMs, and component release assets. + +### CLI + +- Kind: `package-watch` or direct executable rebuild. +- A session-scoped shim may select the locally built CLI while normal host commands remain on the released CLI. +- Machine JSON schemas, exit statuses, confirmation behavior, and stdout/stderr boundaries remain contract-tested. +- Freeze produces the npm tarball and later the Deployment-qualified Debian payload. + +### Agent and background providers + +- Kind: `rebuild-restart`. +- Produces local manager and runner images by digest. +- Replacement requires drain and lease checks; no runtime hot patching. +- Verification includes provider registration, availability, assignment execution, terminal state, usage, settlement, and cleanup. +- Freeze produces multi-platform images, service contracts, SBOMs, and component release assets. + +### TreeDX + +- Kind: normally `rebuild-restart`; released mode remains suitable for unrelated development. +- A local candidate must retain product-neutral OpenAPI, storage, Git, graph, search, and health contracts. +- State policy is explicit because index and repository stores may outlive a process. +- Freeze produces image and client artifacts plus normalized OpenAPI/service contracts. + +### Reviewer + +- Kind: `local-companion` with optional UI watch. +- Remains loopback-only and never receives a public managed route. +- Consumes released or candidate CLI/SDK/UI packages. +- Freeze produces an immutable local-tool archive and checksum. + +## The three primary workflows + +### API and UI co-development + +1. Start a session with Admin and API in `live` mode. +2. Keep PostgreSQL, TreeDX, Agent, Mailpit, and edge on released managed components unless affected. +3. Select an explicit API state policy. +4. Edit the API operation and regenerate its local catalog/OpenAPI output. +5. Edit the Admin consumer and UI presentation. +6. Exercise registration, confirmation, OAuth, account, team, and application behavior through canonical hostnames. +7. Run focused API contract and Admin browser tests. +8. Freeze API and Admin independently when the interaction stabilizes. + +The flow allows a new endpoint to be tested before either project publishes. It does not permit Admin to import API implementation or invent an uncatalogued authority path. + +### Exploratory UI development + +1. Develop reusable presentation in the UI sandbox with fixtures. +2. Run UI in `live` package mode and Admin in `live-web` mode. +3. Let completed UI/Core builds reload Admin through the dependency watcher. +4. Use real API-backed pages when interaction, authorization, or state matters. +5. Run responsive, accessibility, console-error, and route smoke checks locally. +6. Freeze UI/Core packages and rebuild Admin against their exact tarballs. +7. Run packed-install and integrated browser verification before RC publication. + +Spacing, typography, layout, color, iconography, and exploratory unavailable/error states do not require releases. Public component/API changes do require contract comparison before freezing. + +### Agent and background-process development + +1. Keep API and durable state managed. +2. Build a local Agent or worker candidate. +3. Verify no unsafe active lease or assignment blocks replacement. +4. Drain and activate the candidate through the manager. +5. Run focused provider, assignment, workday, communication, terminal-state, usage, and settlement scenarios. +6. Inspect evidence through Admin and Reviewer where applicable. +7. Restore the released runtime or freeze the candidate for release verification. + +The manager never treats a successful container start as proof of assignment correctness. + +## Freeze: from live source to immutable candidate + +`trsd dev freeze` creates a candidate closure without changing source: + +1. acquire a session freeze lock; +2. wait for all selected builds to reach completed generations; +3. reject missing, unstable, secret-bearing, or undeclared output; +4. record exact repository commits and require an explicit dirty-worktree policy; +5. pack libraries and local tools; +6. build service and worker images; +7. calculate integrity and SHA-256/OCI digests; +8. generate normalized contract bundles; +9. compare accepted baselines and calculate minimum semantic bumps; +10. rebuild consumers against packed candidates where required; +11. emit `treeseed.development-candidate/v1` binding source, contracts, artifacts, configuration, and dependency generations. + +A candidate created from a dirty worktree may be tested, but publication requires the identical source tree to be committed, reviewed, and read back from the owning repository. The candidate receipt must prove that the committed tree reproduces the candidate artifacts before release. + +## Verification ladder + +Verification escalates in cost and authority: + +1. **static feedback:** formatter, typecheck, lint, schema generation; +2. **package tests:** unit, contract, accessibility, and focused behavior; +3. **live development checks:** health, local routes, browser interaction, focused real service calls; +4. **candidate acceptance:** clean install, packed artifact or exact image, public exports, SBOM, source closure; +5. **compatibility:** normalized comparison, semantic bump sufficiency, consumer-driven cases; +6. **integrated candidate composition:** smallest affected exact candidate/released artifact set; +7. **active guarantees:** live required outcomes against one immutable generation; +8. **published readback:** registry, release assets, image digests, component manifests; +9. **managed staging activation:** install, readiness, edge routing, no-op reconciliation, rollback; +10. **promotion:** accepted composition selected without rebuild. + +Failure at one level does not erase useful diagnostics from cheaper levels, but cheaper evidence cannot satisfy a more authoritative gate. + +## Independent RC release workflow + +TreeSeed uses independently versioned release candidates cut from each project's protected staging branch. + +For each changed project: + +1. adopt the frozen source and candidate evidence on a reviewed branch; +2. merge through the project release gate into staging; +3. compute the version from contract comparison rather than dependency position; +4. tag the RC from the exact staging commit; +5. publish the already-verified artifact under a prerelease channel; +6. verify registry/release/image readback and source binding; +7. publish component manifests and production Compose assets where applicable; +8. notify Platform of exact artifact metadata. + +Unchanged projects do not receive releases. A compatible upstream patch does not require a consumer commit when its declared range and tests admit the new version. + +The normal dependency order is: + +```text +SDK contracts + -> UI + -> Core and API + -> Admin, CLI, Agent, and Reviewer as affected + -> component releases + -> Deployment + -> pinned Platform composition +``` + +This is an adoption order, not a global version train. + +## Platform composition and managed activation + +Platform creates a `treeseed.integration-release/v1` from exact published artifacts. It records: + +- artifact name and exact version; +- immutable download URL and SHA-256; +- image repository and OCI digest; +- contract bundle and compatibility evidence; +- component release manifest and Compose asset digests; +- exact Platform and Deployment commits/tags; +- generation and compatibility ID. + +Deployment consumes an immutable Platform commit URL, verifies every selected payload, and publishes its catalog and Debian packages. The manager then: + +1. refreshes signed stable and compatible development catalogs; +2. plans the exact package/component transition; +3. validates storage, secrets, dependencies, migration, and rollback prerequisites; +4. archives material state when required; +5. installs exact Debian payloads; +6. activates exact production Compose bundles; +7. verifies component and edge readiness; +8. records a known-good receipt; +9. proves repeated reconciliation is `noop`. + +Development sessions are detached or explicitly excluded before a host composition is accepted. A host with a live overlay cannot claim that its released composition is fully active. + +## Promotion and production + +Production promotion selects an accepted immutable composition. It does not rebuild packages or images, publish mutable tags as identity, or infer compatibility from staging branch heads. + +Production remains unaffected by development-mode support: + +- no source mounts; +- no development Compose; +- no live package overlay; +- no session aliases; +- no dirty source closures; +- no automatic incompatible migration; +- no development credentials; +- no npm `latest` or production tag changes during RC development. + +## Failure, rollback, and cleanup + +Development failures are scoped to the leased targets. + +- An incomplete package build retains the prior completed generation. +- A failed live service health gate keeps or restores the released route. +- A failed candidate activation restores the prior image and runtime configuration. +- A migration failure restores from the policy's approved recovery point and blocks released-runtime reactivation when compatibility cannot be proven. +- A failed Agent candidate is drained and replaced without abandoning assignments or settlement. +- Session expiry removes routes, processes, networks, temporary volumes, generated secrets, package overlays, and candidate tags owned only by that session. + +Cleanup emits a receipt listing retained and removed resources. Durable evidence explicitly selected for review may remain; caches and incomplete artifacts are not silently treated as evidence. The manager reports any residue as a blocker rather than declaring the session stopped cleanly. + +Release rollback remains composition-based. It selects the prior immutable known-good composition and never rebuilds an old tag. + +## Observability and user experience + +`trsd dev status` and Admin's development diagnostics should show: + +- session and lease state; +- canonical and session aliases; +- released, candidate, or live mode per target; +- repository commit and dirty-state indicator; +- current completed build generation; +- dependency reactions and stale consumers; +- health and last restart/reload; +- state policy and pending migrations; +- exact candidate artifact digests; +- blockers, degraded capabilities, and restoration status. + +The browser must display a clear development-source indicator when a canonical application route is served by a live overlay. It must not expose secrets, internal filesystem paths, or tokens. + +Logs use stable target IDs, structured event envelopes, redaction rules, and bounded retention. A developer can follow one target without reading unrelated manager or provider logs. + +## Governance and evidence + +Development sessions may be created by an authorized human, Codex task, or governed agent assignment. The session does not broaden repository or runtime authority. It records the authority used to select source worktrees, targets, state, secrets, and mutations. + +An agent may operate only on assignment-scoped repositories and targets. Freezing, publishing, staging, promotion, destructive state changes, assignment cancellation, and production mutation retain their existing review and confirmation boundaries. + +GitHub issues, pull requests, reviews, checks, and release comments remain the project-local governance record. Manager receipts and Platform compositions complement that record; they do not replace protected repository review. + +## Adoption plan + +### Phase 1: portable contract + +- Add `treeseed.development-runtime/v1` and `treeseed.development-candidate/v1` to SDK. +- Extend `treeseed.package.yaml` validation and portfolio discovery. +- Define target kinds, reactions, state policies, receipts, and redaction behavior. +- Add negative schema and unsafe-path tests. + +### Phase 2: manager sessions and routing + +- Add session/lease storage, plan, status, logs, expiry, detach, and restoration. +- Add canonical edge-route switching after direct and routed health verification. +- Keep unrelated released reconciliation active. +- Prove crash and expired-session restoration. + +### Phase 3: UI stack + +- Declare SDK, UI, and Core package-watch targets. +- Declare Admin live-web target. +- Integrate Core's completed-build watcher with manager sessions. +- Prove same-origin OAuth, confirmation, account, team, and responsive UI development. +- Add packed-candidate freeze and Admin rebuild against exact tarballs. + +### Phase 4: API co-development + +- Add API live-service and production-image candidate targets. +- Add ephemeral, clone, and shared-compatible database policies. +- Regenerate and compare local catalog/OpenAPI output. +- Prove Admin and CLI against a live API without an API release. +- Prove released API restoration after failure. + +### Phase 5: Agent and background runtimes + +- Add Agent manager/runner rebuild-restart targets. +- Add drain, lease, active-assignment, availability, and settlement checks. +- Add operations-runner and applicable TreeDX/AI targets. +- Prove candidate failure restoration and zero abandoned work. + +### Phase 6: freeze-to-release + +- Emit exact candidate closures and semantic bump requirements. +- Reproduce candidates from reviewed commits. +- Publish RCs without rebuilding accepted artifacts. +- Compose exact Platform development generations. +- Run active guarantees, no-op reconciliation, rollback, and restoration. + +## Acceptance criteria + +The architecture is complete when: + +- every participating project can declare a validated development target without manager-specific project code; +- UI changes reach Admin through a completed build generation and browser reload without publishing a package; +- Admin and API can run live together through canonical hostnames and exact OAuth policy; +- SDK/UI/Core candidate packages can replace live links for cross-project verification without source imports; +- API state policies prevent automatic incompatible migration of shared data; +- Agent and background candidates rebuild, drain, restart, verify, and restore without abandoned leases or accounting residue; +- target selection restarts or rebuilds only the declared dependency closure; +- released components continue reconciling while selected targets are leased; +- session expiry and crash recovery restore the known-good routes and components; +- freeze produces immutable artifacts, digests, contract bundles, and compatibility attestations from one source closure; +- project RC publication reuses the accepted candidate artifacts; +- Platform pins exact artifacts and Deployment activates them through its normal signed catalog; +- a host with no development session repeatedly reconciles to `noop`; +- no live overlay, dirty source, development Compose file, or mutable tag can enter production evidence. + +## Summary + +TreeSeed's managed release architecture remains the authority for integration, rollback, and promotion. Its development architecture adds a faster, explicitly non-authoritative layer coordinated by the same manager and the same package/runtime graph. + +Libraries update completed package generations, UI applications hot reload, APIs restart behind stable routes, and agents or background services rebuild and drain safely. The manager preserves real connections and security behavior while isolating state and recording source closure. When work stabilizes, the session freezes exact candidate artifacts, runs standards and guarantee verification, publishes independent RCs, and lets Platform compose the immutable result. + +This separation provides real-time productivity without replacing release evidence with a development process. diff --git a/package.json b/package.json index f23079e8..c668b139 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "node": ">=22" }, "scripts": { + "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", "verify": "node scripts/verify-platform.mjs", "verify:local": "node scripts/verify-platform.mjs" } diff --git a/scripts/verify-development-workflow.ts b/scripts/verify-development-workflow.ts new file mode 100644 index 00000000..33bafbd8 --- /dev/null +++ b/scripts/verify-development-workflow.ts @@ -0,0 +1,54 @@ +import { mkdtempSync, rmSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { resolve } from 'node:path'; +import { DevelopmentSessionStore, affectedDevelopmentClosure } from '../packages/deployment/src/manager/development-sessions.ts'; +import { runCommandLine } from '../packages/cli/src/cli/runtime.ts'; + +const workspace = resolve(import.meta.dirname, '..'); +const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-development-workflow-')); +const sessions = new DevelopmentSessionStore(resolve(temporary, 'manager'), { routedHealth: async () => true }); +let activeSessionId: string | null = null; + +async function hostInvoke(input: { handlerId: string; options: Record }) { + const payload = JSON.parse(String(input.options.payload ?? '{}')) as Record; + switch (input.handlerId) { + case 'local.dev.session.start': { + const record = sessions.start(payload.session, payload.runtimes); activeSessionId = record.session.sessionId; return record; + } + case 'local.dev.status': return payload.sessionId ? sessions.load(payload.sessionId) : { sessions: sessions.list(Boolean(payload.all)) }; + case 'local.dev.plan': { + const record = sessions.load(payload.sessionId); return { affected: affectedDevelopmentClosure(record.runtimes, payload.selected.length ? payload.selected : record.session.targets.map((target) => `${target.projectId}.${target.targetId}`)) }; + } + case 'local.dev.environment': return { environment: { TREESEED_API_BASE_URL: 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: '/etc/treeseed/cli/localhost-ca.crt' } }; + case 'local.dev.candidate.register': return sessions.registerCandidate(payload.sessionId, payload.candidate); + case 'local.dev.use': { + sessions.setMode(payload.sessionId, payload.projectId, payload.targetId, payload.mode); + if (payload.mode !== 'released' && payload.port) await sessions.attach(payload.sessionId, payload.projectId, payload.targetId, payload.port); + if (payload.mode !== 'released' && !payload.port) sessions.markReady(payload.sessionId, payload.projectId, payload.targetId); + if (payload.mode !== 'released' && payload.port && !await sessions.verifyRouted(payload.sessionId, payload.projectId, payload.targetId)) throw new Error('Routed health failed.'); + return sessions.load(payload.sessionId); + } + case 'local.dev.session.stop': return sessions.stop(payload.sessionId); + default: throw new Error(`Unsupported workflow harness command ${input.handlerId}.`); + } +} + +const output: string[] = []; +const context = { cwd: workspace, env: { ...process.env, XDG_STATE_HOME: resolve(temporary, 'state'), TREESEED_API_BASE_URL: process.env.TREESEED_API_BASE_URL ?? 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: process.env.NODE_EXTRA_CA_CERTS ?? '/etc/treeseed/cli/localhost-ca.crt' }, interactiveUi: false, hostInvoke, write: (value: string) => output.push(value) }; + +try { + let exit = await runCommandLine(['dev', 'session', 'start', 'development.session.yaml', '--actor', 'development-workflow-verifier', '--lease-seconds', '900', '--json'], context); + if (exit !== 0 || !activeSessionId) throw new Error('Unable to start the development workflow session.'); + exit = await runCommandLine(['dev', 'use', 'sdk.package=live', '--target', 'ui.package=live', '--target', 'core.package=live', '--json'], context); + if (exit !== 0) throw new Error('Unable to activate the live package overlay closure.'); + exit = await runCommandLine(['dev', 'use', 'admin.web=live', '--json'], context); + if (exit !== 0) throw new Error('Unable to activate the Admin live-web target.'); + const health = await fetch('http://127.0.0.1:4322/healthz'); + if (health.status !== 200) throw new Error(`Admin live health returned ${health.status}.`); + const record = sessions.load(activeSessionId); + const live = record.session.targets.filter((target) => target.mode === 'live').map((target) => `${target.projectId}.${target.targetId}`).sort(); + process.stdout.write(`${JSON.stringify({ ok: true, sessionId: activeSessionId, live, adminHealth: health.status, packageGenerations: record.session.targets.filter((target) => target.targetId === 'package').map((target) => ({ target: `${target.projectId}.${target.targetId}`, generation: target.generation })) }, null, 2)}\n`); +} finally { + if (activeSessionId) await runCommandLine(['dev', 'session', 'stop', '--session', activeSessionId, '--restore', '--json'], context).catch(() => 1); + rmSync(temporary, { recursive: true, force: true }); +} From 1a69733a91a5ad569166545f463fbe5ed3e5bbea Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 16:36:46 -0400 Subject: [PATCH 007/501] chore: select development session releases --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 5d90f53e..c49344ac 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,18 +1,18 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc82", - "generation": 56, + "release": "0.1.0~rc83", + "generation": 57, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "bb1f4f4704ce7d7baaeae47fecf6fb7a295c2eac" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "859b9e53d7dbca695df23f8015fb3d22ef0dbf38", "tag": "0.1.0-rc.81" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "28ff394d4e18199e33cd66639d3be4cfc5027508" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "10576f04725838d8274cd52c1725197098e3e3bf", "tag": "0.1.0-rc.82" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.39", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.39.tgz", "sha256": "7895b4489f7968dd4f59cdaca6a85564d118d5dbec3ba3d4f5d2653b6adf735b" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.40", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.40.tgz", "sha256": "1cf973aa9df4a67eecbb2ab697d164c515cdda7091ba402f043c771807d12c0a" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.5", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.5.tgz", "sha256": "577076c10cc0624f8d7d48654d3cd50812297d729658958359355d70aef477ce" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.23", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.23.tgz", "sha256": "7e10d0f64a7a0b9ae042f5a19eed82e90bccf41d10140eeafe17769811fc9ba7" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.24.tgz", "sha256": "ad953ce1ef0b266e6a2b02c85e38d9e8b645301021c4396b7634adcc8f555649" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -24,5 +24,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T14:58:02.000Z" + "createdAt": "2026-08-26T20:35:52.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 464d7548..96211df2 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "bb1f4f4704ce7d7baaeae47fecf6fb7a295c2eac" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "859b9e53d7dbca695df23f8015fb3d22ef0dbf38", "tag": "0.1.0-rc.81" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "28ff394d4e18199e33cd66639d3be4cfc5027508" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "10576f04725838d8274cd52c1725197098e3e3bf", "tag": "0.1.0-rc.82" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 0377a6590cefb129d397dfac48978f2f83b58217 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 16:40:02 -0400 Subject: [PATCH 008/501] chore: bind generation 58 to Deployment rc.83 --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index c49344ac..7698978f 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc83", - "generation": 57, + "release": "0.1.0~rc84", + "generation": 58, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "28ff394d4e18199e33cd66639d3be4cfc5027508" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "10576f04725838d8274cd52c1725197098e3e3bf", "tag": "0.1.0-rc.82" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "bea3409b5f37eb58284ed2c5e39b96f5d563c93b" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.40", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.40.tgz", "sha256": "1cf973aa9df4a67eecbb2ab697d164c515cdda7091ba402f043c771807d12c0a" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, @@ -24,5 +24,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T20:35:52.000Z" + "createdAt": "2026-08-26T20:39:49.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 96211df2..d960e202 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "28ff394d4e18199e33cd66639d3be4cfc5027508" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "10576f04725838d8274cd52c1725197098e3e3bf", "tag": "0.1.0-rc.82" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "bea3409b5f37eb58284ed2c5e39b96f5d563c93b" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From c672bc51ba1b149bf8dea97e07fdf7cdf4db98d1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 17:03:45 -0400 Subject: [PATCH 009/501] chore: compose development generation 59 --- deployment/integration-releases/development.json | 12 ++++++------ deployment/integration-releases/stable.json | 2 +- docs/dev-release.md | 4 ++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 7698978f..582fdc46 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,16 +1,16 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc84", - "generation": 58, + "release": "0.1.0~rc85", + "generation": 59, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "bea3409b5f37eb58284ed2c5e39b96f5d563c93b" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "065f04fcf18f03c589d9d1d00a784d22981c2bbf" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.40", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.40.tgz", "sha256": "1cf973aa9df4a67eecbb2ab697d164c515cdda7091ba402f043c771807d12c0a" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.5", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.5.tgz", "sha256": "577076c10cc0624f8d7d48654d3cd50812297d729658958359355d70aef477ce" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.6.tgz", "sha256": "6a3d15e85d6510ec8fd78b73f4db0dfac0a408ef502575a925170b18ce28c740" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.24.tgz", "sha256": "ad953ce1ef0b266e6a2b02c85e38d9e8b645301021c4396b7634adcc8f555649" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, @@ -19,10 +19,10 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/component-release.json", "sha256": "2f9216c71f125ab29ebe4d469781ce2935db1726b733289106fcd1779478118c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/compose.yml", "sha256": "d37224f83c807fcf3fc2c74f345c6e64099953b17ec16b901d81e491f172bd0f" } }] }, - { "componentId": "admin", "release": "0.12.59~rc5-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.5/component-release.json", "sha256": "cbab7076d308a579ff2c91f978a0e3d9d2ee16e159ad2ccfa7dd2c98334762b4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.5/compose.yml", "sha256": "d62edc1c23c08e38931b615e649a149bd6d685a58a4f5e669a7d23916722e572" } }] }, + { "componentId": "admin", "release": "0.12.59~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.6/component-release.json", "sha256": "7e68ac01b494e7969b5a1cffe8a130006e70fad12e1fc98c7b7ab728cf684de7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.6/compose.yml", "sha256": "c335a40ac6cb66c99f09b26b189874c9206b7c5b223e1cea185f4ef7fb86436d" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T20:39:49.000Z" + "createdAt": "2026-08-26T21:03:06.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index d960e202..f88bdc60 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,7 +4,7 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "bea3409b5f37eb58284ed2c5e39b96f5d563c93b" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "065f04fcf18f03c589d9d1d00a784d22981c2bbf" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, diff --git a/docs/dev-release.md b/docs/dev-release.md index c2f6f07c..0c7091f3 100644 --- a/docs/dev-release.md +++ b/docs/dev-release.md @@ -594,6 +594,10 @@ Deployment consumes an immutable Platform commit URL, verifies every selected pa 8. records a known-good receipt; 9. proves repeated reconciliation is `noop`. +Manager self-updates use a two-phase handoff. A running manager may refresh and install the exact core package set, but once any core package changes it must stop that reconciliation before loading the new catalog or composing components. It schedules a bounded restart and the upgraded process performs planning and activation from the beginning. The stale process must never interpret a newer catalog, schema, component type, or rollback set. + +Component packages remain installable across that handoff. Their package installation creates the manager-owned component configuration directory and a non-overwriting environment file before Compose can run; the upgraded manager then renders the authoritative connection environment. Production Compose joins only declared manager-owned external networks, publishes no application host ports, and relies on the edge network for public aliases and the private platform network for local component dependencies. The supervisor creates those networks before activation. Remote dependencies replace the injected connection URL without changing the component bundle. + Development sessions are detached or explicitly excluded before a host composition is accepted. A host with a live overlay cannot claim that its released composition is fully active. ## Promotion and production From 82169a42cbdb17252929c968ba9d193dce063127 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 17:08:32 -0400 Subject: [PATCH 010/501] chore: compose development generation 60 --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 582fdc46..685b5586 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc85", - "generation": 59, + "release": "0.1.0~rc86", + "generation": 60, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "065f04fcf18f03c589d9d1d00a784d22981c2bbf" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "472ebc2a25cad1a66a24fb2711ebabbb9fcd6a04" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.40", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.40.tgz", "sha256": "1cf973aa9df4a67eecbb2ab697d164c515cdda7091ba402f043c771807d12c0a" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, @@ -24,5 +24,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T21:03:06.000Z" + "createdAt": "2026-08-26T21:08:15.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index f88bdc60..8eaa421d 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "065f04fcf18f03c589d9d1d00a784d22981c2bbf" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "38396f3d9f341206cd054bb9ce0298cbd7780cf9", "tag": "0.1.0-rc.83" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "472ebc2a25cad1a66a24fb2711ebabbb9fcd6a04" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From d30ba3f06f2f5d2289ec9f87a195aa074c891cb5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 18:03:26 -0400 Subject: [PATCH 011/501] chore: select account catalog release candidates --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 685b5586..79235802 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -7,10 +7,10 @@ "platform": { "repository": "treeseed-ai/platform", "commit": "472ebc2a25cad1a66a24fb2711ebabbb9fcd6a04" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.40", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.40.tgz", "sha256": "1cf973aa9df4a67eecbb2ab697d164c515cdda7091ba402f043c771807d12c0a" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.42.tgz", "sha256": "1431cba7eba1dec4e6a0a495036be98646c6bba7e8e0d846a5294c606327d4a3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.6.tgz", "sha256": "6a3d15e85d6510ec8fd78b73f4db0dfac0a408ef502575a925170b18ce28c740" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.7", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.7.tgz", "sha256": "0761921b5cc93d192545d5c2998902350b232b869c9bfb8ef8f2b66aff1985f3" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.24.tgz", "sha256": "ad953ce1ef0b266e6a2b02c85e38d9e8b645301021c4396b7634adcc8f555649" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, @@ -18,11 +18,11 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/component-release.json", "sha256": "2f9216c71f125ab29ebe4d469781ce2935db1726b733289106fcd1779478118c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.38/compose.yml", "sha256": "d37224f83c807fcf3fc2c74f345c6e64099953b17ec16b901d81e491f172bd0f" } }] }, - { "componentId": "admin", "release": "0.12.59~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.6/component-release.json", "sha256": "7e68ac01b494e7969b5a1cffe8a130006e70fad12e1fc98c7b7ab728cf684de7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.6/compose.yml", "sha256": "c335a40ac6cb66c99f09b26b189874c9206b7c5b223e1cea185f4ef7fb86436d" } }] }, + { "componentId": "api", "release": "0.8.0~rc40-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.40/component-release.json", "sha256": "00114e6a80984391c76b9573a9d7e10a20ed5b9ec16b8247280675eb59304bd4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.40/compose.yml", "sha256": "e4a7e75c4ebd3d74815f4530832a2bb496d5bf13bdb1d662511e6e742351f220" } }] }, + { "componentId": "admin", "release": "0.12.59~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.7/component-release.json", "sha256": "53bc0ca5a3a4c1dbfd194b41c433c3c4066007a4fb763bba781e112ee50b8ca2" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.7/compose.yml", "sha256": "6a7d14075e7eec47f12c19bfc7c1e3d0071284d32b7abd03c78bafd8a9649e9f" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T21:08:15.000Z" + "createdAt": "2026-08-26T22:02:07.000Z" } From 24cac06cf872c56c924dd6479add2dfac9491d3d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 18:17:41 -0400 Subject: [PATCH 012/501] test: compile Admin against live package overlays --- scripts/verify-development-workflow.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/verify-development-workflow.ts b/scripts/verify-development-workflow.ts index 33bafbd8..f4444333 100644 --- a/scripts/verify-development-workflow.ts +++ b/scripts/verify-development-workflow.ts @@ -1,4 +1,5 @@ import { mkdtempSync, rmSync } from 'node:fs'; +import { execFileSync } from 'node:child_process'; import { tmpdir } from 'node:os'; import { resolve } from 'node:path'; import { DevelopmentSessionStore, affectedDevelopmentClosure } from '../packages/deployment/src/manager/development-sessions.ts'; @@ -36,6 +37,16 @@ async function hostInvoke(input: { handlerId: string; options: Record output.push(value) }; +function verifyAdminAgainstLivePackages() { + try { + execFileSync('npm', ['run', 'check'], { cwd: resolve(workspace, 'packages/admin'), env: context.env, encoding: 'utf8', maxBuffer: 2_000_000 }); + } catch (error) { + const result = error as { stdout?: string; stderr?: string }; + const diagnostic = `${result.stdout ?? ''}\n${result.stderr ?? ''}`.trim().slice(-12_000); + throw new Error(`Admin check failed against the live package overlays.\n${diagnostic}`); + } +} + try { let exit = await runCommandLine(['dev', 'session', 'start', 'development.session.yaml', '--actor', 'development-workflow-verifier', '--lease-seconds', '900', '--json'], context); if (exit !== 0 || !activeSessionId) throw new Error('Unable to start the development workflow session.'); @@ -45,9 +56,10 @@ try { if (exit !== 0) throw new Error('Unable to activate the Admin live-web target.'); const health = await fetch('http://127.0.0.1:4322/healthz'); if (health.status !== 200) throw new Error(`Admin live health returned ${health.status}.`); + verifyAdminAgainstLivePackages(); const record = sessions.load(activeSessionId); const live = record.session.targets.filter((target) => target.mode === 'live').map((target) => `${target.projectId}.${target.targetId}`).sort(); - process.stdout.write(`${JSON.stringify({ ok: true, sessionId: activeSessionId, live, adminHealth: health.status, packageGenerations: record.session.targets.filter((target) => target.targetId === 'package').map((target) => ({ target: `${target.projectId}.${target.targetId}`, generation: target.generation })) }, null, 2)}\n`); + process.stdout.write(`${JSON.stringify({ ok: true, sessionId: activeSessionId, live, adminHealth: health.status, adminCheck: 'passed', packageGenerations: record.session.targets.filter((target) => target.targetId === 'package').map((target) => ({ target: `${target.projectId}.${target.targetId}`, generation: target.generation })) }, null, 2)}\n`); } finally { if (activeSessionId) await runCommandLine(['dev', 'session', 'stop', '--session', activeSessionId, '--restore', '--json'], context).catch(() => 1); rmSync(temporary, { recursive: true, force: true }); From c2af0c89b944f935bfca56e6bfb89e982c97976d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 19:19:40 -0400 Subject: [PATCH 013/501] feat(guarantees): plan from exact composition artifacts (#162) --- package.json | 2 + scripts/plan-composition-guarantees.mjs | 113 ++++++++++++++++++++ scripts/test-composition-guarantee-plan.mjs | 59 ++++++++++ 3 files changed, 174 insertions(+) create mode 100644 scripts/plan-composition-guarantees.mjs create mode 100644 scripts/test-composition-guarantee-plan.mjs diff --git a/package.json b/package.json index c668b139..ce3e5513 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "node": ">=22" }, "scripts": { + "guarantees:plan": "node scripts/plan-composition-guarantees.mjs", + "test:guarantee-plan": "node scripts/test-composition-guarantee-plan.mjs", "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", "verify": "node scripts/verify-platform.mjs", "verify:local": "node scripts/verify-platform.mjs" diff --git a/scripts/plan-composition-guarantees.mjs b/scripts/plan-composition-guarantees.mjs new file mode 100644 index 00000000..e5bde9b7 --- /dev/null +++ b/scripts/plan-composition-guarantees.mjs @@ -0,0 +1,113 @@ +import { createHash } from 'node:crypto'; +import { execFileSync } from 'node:child_process'; +import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { relative, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root = resolve(import.meta.dirname, '..'); + +function option(name, fallback) { + const index = process.argv.indexOf(`--${name}`); + return index >= 0 ? process.argv[index + 1] : fallback; +} + +function verifierRefs(value, out = new Set()) { + if (Array.isArray(value)) for (const entry of value) verifierRefs(entry, out); + else if (value && typeof value === 'object') for (const [key, entry] of Object.entries(value)) { + if (key === 'verifierRefs' && Array.isArray(entry)) for (const id of entry) out.add(String(id)); + else verifierRefs(entry, out); + } + return out; +} + +function dependencyIds(manifest) { + return Array.isArray(manifest?.dependencies?.guarantees) ? manifest.dependencies.guarantees.map(String) : []; +} + +async function materializePackage(payload, temporary) { + let body; + if (payload.artifact.url.startsWith('file:')) body = readFileSync(fileURLToPath(payload.artifact.url)); + else { + const response = await fetch(payload.artifact.url); + if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); + body = Buffer.from(await response.arrayBuffer()); + } + const digest = createHash('sha256').update(body).digest('hex'); + if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); + const archive = resolve(temporary, `${payload.id}.tgz`); + const output = resolve(temporary, payload.id); + writeFileSync(archive, body); + execFileSync('mkdir', ['-p', output]); + execFileSync('tar', ['-xzf', archive, '-C', output]); + return resolve(output, 'package'); +} + +function diagnostic(code, message, detail = {}) { + return { severity: 'error', code, message, ...detail }; +} + +const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); +const ownerFilter = option('owner-package', '@treeseed/admin'); +const types = new Set(String(option('types', 'user,team')).split(',').map((entry) => entry.trim()).filter(Boolean)); +const statuses = new Set(String(option('statuses', 'active')).split(',').map((entry) => entry.trim()).filter(Boolean)); +const release = JSON.parse(readFileSync(releasePath, 'utf8')); +const payload = release.hostPayloads?.find((entry) => entry.packageName === ownerFilter); +if (!payload) throw new Error(`Composition ${release.release} does not select ${ownerFilter}.`); + +const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-')); +try { + const packageRoot = await materializePackage(payload, temporary); + const catalogPath = resolve(packageRoot, 'dist/standards/guarantee-catalog.json'); + const diagnostics = []; + if (!existsSync(catalogPath)) diagnostics.push(diagnostic( + 'guarantee.catalog_missing_from_artifact', + `${ownerFilter}@${payload.version} does not contain its package-owned guarantees.`, + { artifact: payload.artifact.url }, + )); + let catalog = null; + try { if (existsSync(catalogPath)) catalog = JSON.parse(readFileSync(catalogPath, 'utf8')); } + catch (error) { diagnostics.push(diagnostic('guarantee.invalid_catalog', error instanceof Error ? error.message : String(error))); } + if (catalog && catalog.schemaVersion !== 'treeseed.guarantee-catalog/v1') diagnostics.push(diagnostic('guarantee.invalid_catalog', 'Packed guarantee catalog has an unsupported schema version.')); + const loaded = Array.isArray(catalog?.guarantees) ? catalog.guarantees.map((entry) => ({ path: resolve(packageRoot, entry.sourcePath), manifest: entry.manifest })) : []; + const byId = new Map(loaded.map((entry) => [String(entry.manifest.id ?? ''), entry])); + const selected = loaded.filter((entry) => statuses.has(String(entry.manifest.status)) && types.has(String(entry.manifest.type))); + const closure = new Map(selected.map((entry) => [String(entry.manifest.id), { ...entry, selected: true }])); + const queue = [...selected]; + while (queue.length) for (const dependency of dependencyIds(queue.shift().manifest)) { + if (closure.has(dependency)) continue; + const found = byId.get(dependency); + if (!found) diagnostics.push(diagnostic('guarantee.dependency_missing', `Guarantee dependency ${dependency} is absent from the packed catalog.`)); + else { closure.set(dependency, { ...found, selected: false }); queue.push(found); } + } + + const registry = Array.isArray(catalog?.verifierRegistries) ? catalog.verifierRegistries[0]?.document : null; + const declared = registry?.verifiers && typeof registry.verifiers === 'object' ? registry.verifiers : {}; + for (const entry of closure.values()) for (const ref of verifierRefs(entry.manifest)) { + const verifier = declared[ref]; + if (!verifier) diagnostics.push(diagnostic('guarantee.verifier_undeclared', `${entry.manifest.id} references undeclared verifier ${ref}.`)); + else if (!['artifact', 'catalogOperation'].includes(String(verifier.kind))) diagnostics.push(diagnostic( + 'guarantee.verifier_not_artifact_bound', + `${ref} uses ${verifier.kind}; exact compositions require an immutable artifact or catalog operation verifier.`, + { ownerPackage: verifier.ownerPackage, sourcePath: verifier.testFile ?? verifier.command ?? verifier.caseId }, + )); + } + + const results = [...closure.values()].map((entry) => ({ + id: String(entry.manifest.id), journey: String(entry.manifest.journey ?? entry.manifest.id), ownerPackage: String(entry.manifest.ownerPackage), + type: String(entry.manifest.type), subtype: String(entry.manifest.subtype), status: String(entry.manifest.status), selected: entry.selected, + sourcePath: relative(packageRoot, entry.path).replaceAll('\\', '/'), verifierRefs: [...verifierRefs(entry.manifest)].sort(), + })).sort((a, b) => a.id.localeCompare(b.id)); + const report = { + schemaVersion: 'treeseed.guarantee-plan/v1', ok: diagnostics.length === 0, + composition: { release: release.release, generation: release.generation, track: release.track }, + catalog: { packageName: ownerFilter, version: payload.version, artifact: payload.artifact }, + filter: { statuses: [...statuses], types: [...types] }, + counts: { selected: results.filter((entry) => entry.selected).length, withDependencies: results.length, errors: diagnostics.length }, + results, diagnostics, + }; + process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); + process.exitCode = report.ok ? 0 : 1; +} finally { + rmSync(temporary, { recursive: true, force: true }); +} diff --git a/scripts/test-composition-guarantee-plan.mjs b/scripts/test-composition-guarantee-plan.mjs new file mode 100644 index 00000000..991c2b60 --- /dev/null +++ b/scripts/test-composition-guarantee-plan.mjs @@ -0,0 +1,59 @@ +import assert from 'node:assert/strict'; +import { createHash } from 'node:crypto'; +import { execFileSync, spawnSync } from 'node:child_process'; +import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { resolve } from 'node:path'; +import { pathToFileURL } from 'node:url'; + +const root = resolve(import.meta.dirname, '..'); +const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-test-')); + +function fixture(name, withCatalog) { + const source = resolve(temporary, `${name}-source/package`); + mkdirSync(source, { recursive: true }); + if (withCatalog) { + mkdirSync(resolve(source, 'dist/standards'), { recursive: true }); + writeFileSync(resolve(source, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ + schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, + guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { + schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', + ownerPackage: '@treeseed/admin', type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, + api: { required: true, verifierRefs: ['api.example'] }, + } }], + verifierRegistries: [{ sourcePath: 'guarantees/verifiers/ui.verifiers.yaml', document: { + schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', + verifiers: { 'api.example': { kind: 'catalogOperation', ownerPackage: '@treeseed/api' } }, + } }], + })); + } + const archive = resolve(temporary, `${name}.tgz`); + execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, `${name}-source`), 'package']); + const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); + const release = resolve(temporary, `${name}.json`); + writeFileSync(release, JSON.stringify({ + schemaVersion: 'treeseed.integration-release/v1', release: name, generation: 1, track: 'development', + hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }], + })); + return release; +} + +function run(release) { + const result = spawnSync(process.execPath, ['scripts/plan-composition-guarantees.mjs', '--release', release], { cwd: root, encoding: 'utf8' }); + return { ...result, report: JSON.parse(result.stdout) }; +} + +try { + const accepted = run(fixture('accepted', true)); + assert.equal(accepted.status, 0); + assert.equal(accepted.report.ok, true); + assert.deepEqual(accepted.report.counts, { selected: 1, withDependencies: 1, errors: 0 }); + + const missing = run(fixture('missing', false)); + assert.equal(missing.status, 1); + assert.equal(missing.report.ok, false); + assert.equal(missing.report.diagnostics[0].code, 'guarantee.catalog_missing_from_artifact'); + process.stdout.write(`${JSON.stringify({ ok: true, cases: 2 })}\n`); +} finally { + rmSync(temporary, { recursive: true, force: true }); +} From 088d3d813c706fc60ae1ce8d6fd498ca2d027eb9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 18:49:42 -0400 Subject: [PATCH 014/501] chore: compose development generation 62 --- .../integration-releases/development.json | 18 +++++++++--------- deployment/integration-releases/stable.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 79235802..f39daa84 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,16 +1,16 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc86", - "generation": 60, + "release": "0.1.0~rc88", + "generation": 62, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "472ebc2a25cad1a66a24fb2711ebabbb9fcd6a04" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c2af0c89b944f935bfca56e6bfb89e982c97976d" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.42.tgz", "sha256": "1431cba7eba1dec4e6a0a495036be98646c6bba7e8e0d846a5294c606327d4a3" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.1.tgz", "sha256": "8fb16d3dfdebbab09223956b35b75c07b0c6b6d0a88b91bcf3e422d4b775114f" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.43", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.43.tgz", "sha256": "ed4ecdb496f103eb6308acbce95e7ec296f588c8623e8d8a2914760f09b06392" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.3", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.3.tgz", "sha256": "26f6bd3a63087caef50dd15dbf80b41c4af2671b3092e436a2dc63163cb6299d" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.7", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.7.tgz", "sha256": "0761921b5cc93d192545d5c2998902350b232b869c9bfb8ef8f2b66aff1985f3" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.9.tgz", "sha256": "bc7e4a1eec85958652d7e861ccf71e3a7ddd2b3cf7937c004397f4fa9ad94721" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.24.tgz", "sha256": "ad953ce1ef0b266e6a2b02c85e38d9e8b645301021c4396b7634adcc8f555649" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, @@ -18,11 +18,11 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc40-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.40/component-release.json", "sha256": "00114e6a80984391c76b9573a9d7e10a20ed5b9ec16b8247280675eb59304bd4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.40/compose.yml", "sha256": "e4a7e75c4ebd3d74815f4530832a2bb496d5bf13bdb1d662511e6e742351f220" } }] }, - { "componentId": "admin", "release": "0.12.59~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.7/component-release.json", "sha256": "53bc0ca5a3a4c1dbfd194b41c433c3c4066007a4fb763bba781e112ee50b8ca2" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.7/compose.yml", "sha256": "6a7d14075e7eec47f12c19bfc7c1e3d0071284d32b7abd03c78bafd8a9649e9f" } }] }, + { "componentId": "api", "release": "0.8.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.41/component-release.json", "sha256": "93ff9fba7574ad655f474a5f1c6b3070b529ec631246b647625061748536ce99" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.41/compose.yml", "sha256": "cfb2f3c777316820017f35e34a66eb8cc87a9bd98bce7ada5500a9e86bc6ba9a" } }] }, + { "componentId": "admin", "release": "0.12.59~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.9/component-release.json", "sha256": "1d80fc7e0133caa08dbbebd11066cf46d318a92ddf2043704ee1cdff3a6f5ceb" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.9/compose.yml", "sha256": "cd6d5811cfa6d53e7dfde423d5d51069c090d77a967ffe34160798801472f58e" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T22:02:07.000Z" + "createdAt": "2026-08-26T23:32:01.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 8eaa421d..76f41367 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,7 +4,7 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "472ebc2a25cad1a66a24fb2711ebabbb9fcd6a04" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c2af0c89b944f935bfca56e6bfb89e982c97976d" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, From 242453ff366465cda6ef79e705e37615cdc3c221 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 20:18:21 -0400 Subject: [PATCH 015/501] feat(guarantees): execute exact composition artifacts --- docs/dev-release.md | 4 + package.json | 2 + scripts/plan-composition-guarantees.mjs | 57 +++++- scripts/run-composition-guarantees.mjs | 202 ++++++++++++++++++++ scripts/test-composition-guarantee-plan.mjs | 14 +- scripts/test-composition-guarantee-run.mjs | 49 +++++ scripts/verify-platform.mjs | 2 + 7 files changed, 323 insertions(+), 7 deletions(-) create mode 100644 scripts/run-composition-guarantees.mjs create mode 100644 scripts/test-composition-guarantee-run.mjs diff --git a/docs/dev-release.md b/docs/dev-release.md index 0c7091f3..b2cd8c2d 100644 --- a/docs/dev-release.md +++ b/docs/dev-release.md @@ -539,6 +539,10 @@ Verification escalates in cost and authority: Failure at one level does not erase useful diagnostics from cheaper levels, but cheaper evidence cannot satisfy a more authoritative gate. +Platform plans active guarantees from the guarantee catalog contained in the exact selected Admin tarball. It merges verifier registries in catalog order so a reviewed composition registry can supersede historical source-test references. Every selected verifier must name an artifact or catalog operation, its owning package, case, and safe entrypoint; artifact owners must also be exact host payloads in that composition. Planning fails when any owner or immutable binding is absent. + +`npm run guarantees:run` materializes every selected payload by URL and SHA-256 into an isolated package graph, executes each unique verifier artifact once, and maps its case results back to the selected guarantee closure. Runtime verifiers may execute inside their declared managed component container while static package verifiers execute locally from the packed graph. The runner writes an atomic `.treeseed/guarantees/runs/` bundle containing `plan.json`, `report.json`, `report.md`, and redacted verifier evidence. Reviewer consumes that bundle; it does not reconstruct source tests or claim evidence from branch state. + ## Independent RC release workflow TreeSeed uses independently versioned release candidates cut from each project's protected staging branch. diff --git a/package.json b/package.json index ce3e5513..152db1cb 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ }, "scripts": { "guarantees:plan": "node scripts/plan-composition-guarantees.mjs", + "guarantees:run": "node scripts/run-composition-guarantees.mjs", "test:guarantee-plan": "node scripts/test-composition-guarantee-plan.mjs", + "test:guarantee-run": "node scripts/test-composition-guarantee-run.mjs", "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", "verify": "node scripts/verify-platform.mjs", "verify:local": "node scripts/verify-platform.mjs" diff --git a/scripts/plan-composition-guarantees.mjs b/scripts/plan-composition-guarantees.mjs index e5bde9b7..6c15d472 100644 --- a/scripts/plan-composition-guarantees.mjs +++ b/scripts/plan-composition-guarantees.mjs @@ -21,6 +21,20 @@ function verifierRefs(value, out = new Set()) { return out; } +function guaranteeVerifierRefs(manifest) { + const refs = verifierRefs(manifest); + if (manifest?.scene?.required === true && manifest.scene.executionKey) refs.add(String(manifest.scene.executionKey)); + for (const negative of manifest?.negativeCases ?? []) { + if (negative?.scene?.executionKey) refs.add(String(negative.scene.executionKey)); + } + return refs; +} + +function sceneVerifierRefs(manifest) { + return [manifest?.scene?.required === true ? manifest.scene.executionKey : null, + ...(manifest?.negativeCases ?? []).map((entry) => entry?.scene?.executionKey)].filter(Boolean).map(String); +} + function dependencyIds(manifest) { return Array.isArray(manifest?.dependencies?.guarantees) ? manifest.dependencies.guarantees.map(String) : []; } @@ -54,6 +68,7 @@ const statuses = new Set(String(option('statuses', 'active')).split(',').map((en const release = JSON.parse(readFileSync(releasePath, 'utf8')); const payload = release.hostPayloads?.find((entry) => entry.packageName === ownerFilter); if (!payload) throw new Error(`Composition ${release.release} does not select ${ownerFilter}.`); +const payloadsByPackage = new Map((release.hostPayloads ?? []).map((entry) => [entry.packageName, entry])); const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-')); try { @@ -81,9 +96,17 @@ try { else { closure.set(dependency, { ...found, selected: false }); queue.push(found); } } - const registry = Array.isArray(catalog?.verifierRegistries) ? catalog.verifierRegistries[0]?.document : null; - const declared = registry?.verifiers && typeof registry.verifiers === 'object' ? registry.verifiers : {}; - for (const entry of closure.values()) for (const ref of verifierRefs(entry.manifest)) { + const declared = {}; + const registrySources = {}; + for (const registry of catalog?.verifierRegistries ?? []) { + for (const [id, verifier] of Object.entries(registry?.document?.verifiers ?? {})) { + declared[id] = verifier; + registrySources[id] = registry.sourcePath; + } + } + const usedVerifierRefs = new Set(); + for (const entry of closure.values()) for (const ref of guaranteeVerifierRefs(entry.manifest)) { + usedVerifierRefs.add(ref); const verifier = declared[ref]; if (!verifier) diagnostics.push(diagnostic('guarantee.verifier_undeclared', `${entry.manifest.id} references undeclared verifier ${ref}.`)); else if (!['artifact', 'catalogOperation'].includes(String(verifier.kind))) diagnostics.push(diagnostic( @@ -92,11 +115,33 @@ try { { ownerPackage: verifier.ownerPackage, sourcePath: verifier.testFile ?? verifier.command ?? verifier.caseId }, )); } + for (const ref of usedVerifierRefs) { + const verifier = declared[ref]; + if (!verifier || !['artifact', 'catalogOperation'].includes(String(verifier.kind))) continue; + for (const field of verifier.kind === 'artifact' + ? ['ownerPackage', 'artifactId', 'entrypoint', 'caseId'] + : ['ownerPackage', 'operationId', 'caseId']) { + if (typeof verifier[field] !== 'string' || !verifier[field].trim()) diagnostics.push(diagnostic( + 'guarantee.verifier_field_missing', `${ref} is missing required ${field}.`, { verifierRef: ref, field }, + )); + } + if (!payloadsByPackage.has(verifier.ownerPackage)) diagnostics.push(diagnostic( + 'guarantee.verifier_payload_missing', `${ref} owner ${verifier.ownerPackage} is not selected as an exact host payload.`, + { verifierRef: ref, ownerPackage: verifier.ownerPackage }, + )); + if (verifier.kind === 'artifact' && (verifier.entrypoint.startsWith('/') || verifier.entrypoint.split('/').includes('..'))) diagnostics.push(diagnostic( + 'guarantee.verifier_entrypoint_unsafe', `${ref} has an unsafe artifact entrypoint.`, { verifierRef: ref, entrypoint: verifier.entrypoint }, + )); + } const results = [...closure.values()].map((entry) => ({ id: String(entry.manifest.id), journey: String(entry.manifest.journey ?? entry.manifest.id), ownerPackage: String(entry.manifest.ownerPackage), type: String(entry.manifest.type), subtype: String(entry.manifest.subtype), status: String(entry.manifest.status), selected: entry.selected, - sourcePath: relative(packageRoot, entry.path).replaceAll('\\', '/'), verifierRefs: [...verifierRefs(entry.manifest)].sort(), + dependency: !entry.selected, journeyIndex: entry.manifest.journeyIndex, gates: Array.isArray(entry.manifest.gates) ? entry.manifest.gates.map(String) : [], + releaseBlocking: entry.manifest.run?.requiredForRelease === true, + sourcePath: relative(packageRoot, entry.path).replaceAll('\\', '/'), sceneManifest: entry.manifest.scene?.manifest, + sceneVerifierRefs: sceneVerifierRefs(entry.manifest), + verifierRefs: [...guaranteeVerifierRefs(entry.manifest)].sort(), })).sort((a, b) => a.id.localeCompare(b.id)); const report = { schemaVersion: 'treeseed.guarantee-plan/v1', ok: diagnostics.length === 0, @@ -104,7 +149,9 @@ try { catalog: { packageName: ownerFilter, version: payload.version, artifact: payload.artifact }, filter: { statuses: [...statuses], types: [...types] }, counts: { selected: results.filter((entry) => entry.selected).length, withDependencies: results.length, errors: diagnostics.length }, - results, diagnostics, + verifiers: [...usedVerifierRefs].sort().map((ref) => ({ ref, registrySource: registrySources[ref], definition: declared[ref] })), + payloads: [...new Set([...usedVerifierRefs].map((ref) => declared[ref]?.ownerPackage).filter(Boolean))].map((packageName) => payloadsByPackage.get(packageName)), + entries: results, results, diagnostics, }; process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); process.exitCode = report.ok ? 0 : 1; diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs new file mode 100644 index 00000000..56bf7916 --- /dev/null +++ b/scripts/run-composition-guarantees.mjs @@ -0,0 +1,202 @@ +import { createHash, randomUUID } from 'node:crypto'; +import { spawnSync } from 'node:child_process'; +import { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; + +const root = resolve(import.meta.dirname, '..'); + +function option(name, fallback) { + const index = process.argv.indexOf(`--${name}`); + return index >= 0 ? process.argv[index + 1] : fallback; +} + +function options(name) { + return process.argv.flatMap((entry, index) => entry === `--${name}` ? [process.argv[index + 1]] : []).filter(Boolean); +} + +function safePackagePath(packageName) { + if (!/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+$/iu.test(packageName)) throw new Error(`Unsafe package name ${packageName}.`); + return packageName.split('/'); +} + +function redact(value) { + return String(value ?? '') + .replace(/Bearer\s+[A-Za-z0-9._~-]+/giu, 'Bearer [REDACTED]') + .replace(/(?:confirm|reset)_[A-Za-z0-9_-]+/gu, '[REDACTED]') + .replace(/("(?:access_token|refresh_token|password|token)"\s*:\s*")[^"]+/giu, '$1[REDACTED]'); +} + +async function artifactBody(payload) { + if (payload.artifact.url.startsWith('file:')) return readFileSync(fileURLToPath(payload.artifact.url)); + const response = await fetch(payload.artifact.url); + if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); + return Buffer.from(await response.arrayBuffer()); +} + +async function materializePayloads(release, temporary) { + const nodeModules = resolve(temporary, 'node_modules'); + const roots = new Map(); + for (const payload of release.hostPayloads ?? []) { + const body = await artifactBody(payload); + const digest = createHash('sha256').update(body).digest('hex'); + if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); + const archive = resolve(temporary, `${payload.id}.tgz`); + const packageRoot = resolve(nodeModules, ...safePackagePath(payload.packageName)); + mkdirSync(packageRoot, { recursive: true }); + writeFileSync(archive, body); + const unpacked = spawnSync('tar', ['-xzf', archive, '-C', packageRoot, '--strip-components=1'], { encoding: 'utf8' }); + if (unpacked.status !== 0) throw new Error(`Unable to unpack ${payload.id}: ${redact(unpacked.stderr)}`); + roots.set(payload.packageName, packageRoot); + } + return { nodeModules, roots }; +} + +function parseReport(stdout, definition) { + let report; + try { report = JSON.parse(stdout.trim()); } + catch { throw new Error(`${definition.artifactId} did not emit one JSON verifier result.`); } + if (report?.schemaVersion !== 'treeseed.guarantee-verifier-result/v1' || !Array.isArray(report.checks)) { + throw new Error(`${definition.artifactId} emitted an unsupported verifier result.`); + } + return report; +} + +function verifierArgs() { + return [ + '--api-origin', option('api-origin', 'http://api:3000'), + '--mailpit-origin', option('mailpit-origin', 'http://mailpit:8025'), + '--admin-origin', option('admin-origin', 'https://admin.treeseed.localhost'), + ]; +} + +async function executeLocal(definition, packageRoot) { + const entrypoint = resolve(packageRoot, definition.entrypoint); + if (!entrypoint.startsWith(`${packageRoot}/`) || !existsSync(entrypoint)) throw new Error(`Missing safe entrypoint ${definition.entrypoint}.`); + if (definition.exportName) { + const module = await import(`${pathToFileURL(entrypoint).href}?run=${randomUUID()}`); + if (typeof module[definition.exportName] !== 'function') throw new Error(`${definition.exportName} is not exported by ${definition.entrypoint}.`); + const report = await module[definition.exportName](); + return { report: parseReport(JSON.stringify(report), definition), execution: { mode: 'local-export' } }; + } + const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs()], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); + const report = parseReport(redact(child.stdout), definition); + if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); + return { report, execution: { mode: 'local-process', exitCode: child.status } }; +} + +function containerMap() { + return new Map(options('container').map((entry) => { + const separator = entry.indexOf('='); + if (separator < 1) throw new Error(`Invalid --container mapping ${entry}.`); + return [entry.slice(0, separator), entry.slice(separator + 1)]; + })); +} + +function executeInContainer(definition, container, nodeModules, runId) { + if (!/^[A-Za-z0-9_.-]+$/u.test(container)) throw new Error(`Unsafe container name ${container}.`); + const target = `/app/.treeseed-guarantees/${runId}`; + const packagePath = `${target}/node_modules/${definition.ownerPackage}`; + try { + let child = spawnSync('docker', ['exec', container, 'mkdir', '-p', `${target}/node_modules`], { encoding: 'utf8' }); + if (child.status !== 0) throw new Error(redact(child.stderr)); + child = spawnSync('docker', ['cp', `${nodeModules}/.`, `${container}:${target}/node_modules`], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); + if (child.status !== 0) throw new Error(redact(child.stderr)); + child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, ...verifierArgs()], { + encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, + }); + const report = parseReport(redact(child.stdout), definition); + if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); + return { report, execution: { mode: 'component-container', container, exitCode: child.status } }; + } finally { + spawnSync('docker', ['exec', container, 'rm', '-rf', target], { encoding: 'utf8' }); + } +} + +function markdown(report) { + const rows = report.results.map((entry) => `| ${entry.status} | ${entry.id} | ${entry.verifierRefs.join(', ')} |`).join('\n'); + return `# TreeSeed composition guarantee run\n\n- Run: ${report.runId}\n- Composition: ${report.composition.release} generation ${report.composition.generation}\n- Result: ${report.ok ? 'PASS' : 'FAIL'}\n- Passed: ${report.counts.passed}\n- Failed: ${report.counts.failed}\n- Blocked: ${report.counts.blocked}\n\n| Status | Guarantee | Verifiers |\n| --- | --- | --- |\n${rows}\n`; +} + +const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); +const outputRoot = resolve(root, option('output', '.treeseed/guarantees/runs')); +const environment = option('environment', 'local'); +const runId = option('run-id', `${new Date().toISOString().replace(/[:.]/gu, '-')}-${randomUUID().slice(0, 8)}`); +const startedAt = new Date().toISOString(); +if (!/^[A-Za-z0-9_.-]+$/u.test(runId)) throw new Error('Run ID must be filesystem and container safe.'); +const release = JSON.parse(readFileSync(releasePath, 'utf8')); +const planner = spawnSync(process.execPath, [resolve(root, 'scripts/plan-composition-guarantees.mjs'), '--release', releasePath, + '--owner-package', option('owner-package', '@treeseed/admin'), '--types', option('types', 'user,team'), '--statuses', option('statuses', 'active')], + { cwd: root, encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); +const plan = JSON.parse(planner.stdout); +const finalRoot = resolve(outputRoot, runId); +if (existsSync(finalRoot)) throw new Error(`Guarantee run ${runId} already exists.`); +const stagingRoot = resolve(outputRoot, `.${runId}.partial-${randomUUID()}`); +mkdirSync(resolve(stagingRoot, 'evidence'), { recursive: true }); +writeFileSync(resolve(stagingRoot, 'plan.json'), `${JSON.stringify(plan, null, 2)}\n`); + +const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-')); +try { + const executions = new Map(); + if (plan.ok) { + const { nodeModules, roots } = await materializePayloads(release, temporary); + const containers = containerMap(); + for (const verifier of plan.verifiers) { + const definition = verifier.definition; + const key = JSON.stringify([definition.kind, definition.ownerPackage, definition.artifactId, definition.entrypoint, definition.exportName]); + if (!executions.has(key)) { + try { + if (definition.kind !== 'artifact') throw new Error(`Catalog operation execution is not configured for ${verifier.ref}.`); + const container = containers.get(definition.ownerPackage); + const executed = container + ? executeInContainer(definition, container, nodeModules, runId) + : await executeLocal(definition, roots.get(definition.ownerPackage)); + executions.set(key, executed); + } catch (error) { + executions.set(key, { error: redact(error instanceof Error ? error.message : error), execution: { mode: 'failed' } }); + } + } + const executed = executions.get(key); + verifier.executionKey = createHash('sha256').update(key).digest('hex').slice(0, 16); + verifier.execution = executed.execution; + verifier.error = executed.error; + verifier.report = executed.report; + if (executed.report) writeFileSync(resolve(stagingRoot, 'evidence', `${verifier.executionKey}.json`), `${JSON.stringify(executed.report, null, 2)}\n`); + } + } + const verifierByRef = new Map(plan.verifiers.map((entry) => [entry.ref, entry])); + const results = plan.results.map((entry) => { + const checks = entry.verifierRefs.map((ref) => { + const verifier = verifierByRef.get(ref), definition = verifier?.definition; + const check = verifier?.report?.checks?.find((candidate) => candidate.id === definition?.caseId); + return { ref, caseId: definition?.caseId, status: check?.status ?? 'blocked', error: verifier?.error ?? check?.error }; + }); + const status = checks.some((check) => check.status === 'failed') ? 'failed' + : checks.length > 0 && checks.every((check) => check.status === 'passed') ? 'passed' : 'blocked'; + const steps = checks.map((check) => { + const verifier = verifierByRef.get(check.ref); + const evidence = verifier?.executionKey ? [`evidence/${verifier.executionKey}.json`] : []; + const diagnostics = check.error ? [{ severity: 'error', code: 'guarantee.verifier_failed', message: check.error }] : []; + return { id: check.ref, kind: entry.sceneVerifierRefs?.includes(check.ref) ? 'scene' : 'verifier', status: check.status, summary: check.caseId ?? check.ref, evidence, diagnostics }; + }); + return { ...entry, status, checks, steps, diagnostics: steps.flatMap((step) => step.diagnostics), evidence: [...new Set(steps.flatMap((step) => step.evidence))] }; + }); + const counts = { passed: results.filter((entry) => entry.status === 'passed').length, + failed: results.filter((entry) => entry.status === 'failed').length, skipped: 0, + blocked: results.filter((entry) => entry.status === 'blocked').length, + releaseBlockingFailures: results.filter((entry) => entry.releaseBlocking && ['failed', 'blocked'].includes(entry.status)).length }; + const report = { schemaVersion: 'treeseed.guarantee-run/v1', runId, startedAt, completedAt: new Date().toISOString(), + ok: plan.ok && counts.failed === 0 && counts.blocked === 0, environment, composition: plan.composition, + source: { platform: release.platform, deployment: release.deployment, releasePath }, catalog: plan.catalog, filter: plan.filter, + payloads: plan.payloads, counts, results, diagnostics: plan.diagnostics, verifiers: plan.verifiers.map(({ report: _report, ...entry }) => entry) }; + writeFileSync(resolve(stagingRoot, 'report.json'), `${JSON.stringify(report, null, 2)}\n`); + writeFileSync(resolve(stagingRoot, 'report.md'), markdown(report)); + mkdirSync(dirname(finalRoot), { recursive: true }); + renameSync(stagingRoot, finalRoot); + process.stdout.write(`${JSON.stringify({ ok: report.ok, runId, runRoot: finalRoot, counts }, null, 2)}\n`); + process.exitCode = report.ok ? 0 : 1; +} finally { + rmSync(temporary, { recursive: true, force: true }); + if (existsSync(stagingRoot)) rmSync(stagingRoot, { recursive: true, force: true }); +} diff --git a/scripts/test-composition-guarantee-plan.mjs b/scripts/test-composition-guarantee-plan.mjs index 991c2b60..3668bc4b 100644 --- a/scripts/test-composition-guarantee-plan.mjs +++ b/scripts/test-composition-guarantee-plan.mjs @@ -19,11 +19,18 @@ function fixture(name, withCatalog) { guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', ownerPackage: '@treeseed/admin', type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, + scene: { required: true, manifest: './example.scene.yaml', executionKey: 'admin.example.scene' }, api: { required: true, verifierRefs: ['api.example'] }, } }], - verifierRegistries: [{ sourcePath: 'guarantees/verifiers/ui.verifiers.yaml', document: { + verifierRegistries: [{ sourcePath: 'guarantees/verifiers/legacy.verifiers.yaml', document: { schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', - verifiers: { 'api.example': { kind: 'catalogOperation', ownerPackage: '@treeseed/api' } }, + verifiers: { 'api.example': { kind: 'nodeScript', ownerPackage: '@treeseed/admin', testFile: 'removed.ts' } }, + } }, { sourcePath: 'guarantees/verifiers/composition.verifiers.yaml', document: { + schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', + verifiers: { + 'api.example': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'example' }, + 'admin.example.scene': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'scene' }, + }, } }], })); } @@ -48,6 +55,9 @@ try { assert.equal(accepted.status, 0); assert.equal(accepted.report.ok, true); assert.deepEqual(accepted.report.counts, { selected: 1, withDependencies: 1, errors: 0 }); + assert.equal(accepted.report.verifiers.length, 2); + assert.equal(accepted.report.verifiers[0].registrySource, 'guarantees/verifiers/composition.verifiers.yaml'); + assert.equal(accepted.report.verifiers[0].definition.kind, 'artifact'); const missing = run(fixture('missing', false)); assert.equal(missing.status, 1); diff --git a/scripts/test-composition-guarantee-run.mjs b/scripts/test-composition-guarantee-run.mjs new file mode 100644 index 00000000..5b8f7050 --- /dev/null +++ b/scripts/test-composition-guarantee-run.mjs @@ -0,0 +1,49 @@ +import assert from 'node:assert/strict'; +import { createHash } from 'node:crypto'; +import { execFileSync, spawnSync } from 'node:child_process'; +import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { resolve } from 'node:path'; +import { pathToFileURL } from 'node:url'; + +const root = resolve(import.meta.dirname, '..'); +const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-test-')); + +try { + const packageRoot = resolve(temporary, 'source/package'); + mkdirSync(resolve(packageRoot, 'dist/standards'), { recursive: true }); + writeFileSync(resolve(packageRoot, 'dist/verifier.js'), `#!/usr/bin/env node\nprocess.stdout.write(JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',verifierId:'fixture',startedAt:new Date().toISOString(),completedAt:new Date().toISOString(),ok:true,checks:[{id:'fixture.case',status:'passed',durationMs:1}]}));\n`); + writeFileSync(resolve(packageRoot, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ + schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, + guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { + schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', ownerPackage: '@treeseed/admin', + type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, api: { required: true, verifierRefs: ['fixture.verifier'] }, + } }], + verifierRegistries: [{ sourcePath: 'guarantees/verifiers/composition.yaml', document: { + schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', verifiers: { + 'fixture.verifier': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/fixture', entrypoint: 'dist/verifier.js', caseId: 'fixture.case' }, + }, + } }], + })); + const archive = resolve(temporary, 'admin.tgz'); + execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, 'source'), 'package']); + const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); + const releasePath = resolve(temporary, 'release.json'); + writeFileSync(releasePath, JSON.stringify({ schemaVersion: 'treeseed.integration-release/v1', release: 'fixture', generation: 7, track: 'development', + platform: { commit: 'a'.repeat(40) }, deployment: { commit: 'b'.repeat(40) }, + hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }] })); + const output = resolve(temporary, 'runs'); + const child = spawnSync(process.execPath, ['scripts/run-composition-guarantees.mjs', '--release', releasePath, '--output', output, '--run-id', 'fixture-run'], { cwd: root, encoding: 'utf8' }); + assert.equal(child.status, 0, child.stderr || child.stdout); + const summary = JSON.parse(child.stdout); + const report = JSON.parse(readFileSync(resolve(summary.runRoot, 'report.json'), 'utf8')); + assert.equal(report.ok, true); + assert.deepEqual(report.counts, { passed: 1, failed: 0, skipped: 0, blocked: 0, releaseBlockingFailures: 0 }); + assert.equal(report.environment, 'local'); + assert.equal(report.results[0].steps[0].status, 'passed'); + assert.equal(report.results[0].checks[0].caseId, 'fixture.case'); + assert.equal(report.payloads[0].artifact.sha256, digest); + process.stdout.write(`${JSON.stringify({ ok: true, cases: 1 })}\n`); +} finally { + rmSync(temporary, { recursive: true, force: true }); +} diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 084ff4c3..e8284c61 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -11,6 +11,8 @@ const rootPackage = JSON.parse(read('package.json')); if ('workspaces' in rootPackage) fail('Platform must not treat independent project repositories as npm workspaces.'); if (existsSync(resolve(root, 'package-lock.json'))) fail('Platform must not create a root package lock; each project repository owns its lock independently.'); execFileSync(process.execPath, [resolve(root, 'scripts/verify-treeseed-skill.mjs')], { cwd: root, stdio: 'inherit' }); +execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-plan.mjs')], { cwd: root, stdio: 'inherit' }); +execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-run.mjs')], { cwd: root, stdio: 'inherit' }); if (existsSync(resolve(root, '.gitmodules'))) fail('Platform must not encode team inventory as gitlinks.'); if (existsSync(resolve(root, 'treeseed.portfolio.json'))) fail('Platform must read live team inventory from its portable seed bundle.'); const index = execFileSync('git', ['ls-files', '--stage'], { cwd: root, encoding: 'utf8' }); From 7c565b874509902dd5b72ab2b2e3f9fed6c79439 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 20:22:23 -0400 Subject: [PATCH 016/501] feat(guarantees): support focused reviewer runs --- scripts/plan-composition-guarantees.mjs | 21 ++++++++++++++++++--- scripts/run-composition-guarantees.mjs | 11 ++++++++--- scripts/test-composition-guarantee-plan.mjs | 10 +++++++--- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/scripts/plan-composition-guarantees.mjs b/scripts/plan-composition-guarantees.mjs index 6c15d472..7cd62f79 100644 --- a/scripts/plan-composition-guarantees.mjs +++ b/scripts/plan-composition-guarantees.mjs @@ -12,6 +12,10 @@ function option(name, fallback) { return index >= 0 ? process.argv[index + 1] : fallback; } +function csvOption(name) { + return new Set(String(option(name, '')).split(',').map((entry) => entry.trim()).filter(Boolean)); +} + function verifierRefs(value, out = new Set()) { if (Array.isArray(value)) for (const entry of value) verifierRefs(entry, out); else if (value && typeof value === 'object') for (const [key, entry] of Object.entries(value)) { @@ -65,6 +69,12 @@ const releasePath = resolve(root, option('release', 'deployment/integration-rele const ownerFilter = option('owner-package', '@treeseed/admin'); const types = new Set(String(option('types', 'user,team')).split(',').map((entry) => entry.trim()).filter(Boolean)); const statuses = new Set(String(option('statuses', 'active')).split(',').map((entry) => entry.trim()).filter(Boolean)); +const guaranteeOwners = csvOption('guarantee-owner-package'); +const subtypes = csvOption('subtypes'); +const gates = csvOption('gates'); +const ids = csvOption('ids'); +const journeyIndexes = csvOption('journey-indexes'); +const includeDependencies = !process.argv.includes('--no-dependencies'); const release = JSON.parse(readFileSync(releasePath, 'utf8')); const payload = release.hostPayloads?.find((entry) => entry.packageName === ownerFilter); if (!payload) throw new Error(`Composition ${release.release} does not select ${ownerFilter}.`); @@ -86,10 +96,15 @@ try { if (catalog && catalog.schemaVersion !== 'treeseed.guarantee-catalog/v1') diagnostics.push(diagnostic('guarantee.invalid_catalog', 'Packed guarantee catalog has an unsupported schema version.')); const loaded = Array.isArray(catalog?.guarantees) ? catalog.guarantees.map((entry) => ({ path: resolve(packageRoot, entry.sourcePath), manifest: entry.manifest })) : []; const byId = new Map(loaded.map((entry) => [String(entry.manifest.id ?? ''), entry])); - const selected = loaded.filter((entry) => statuses.has(String(entry.manifest.status)) && types.has(String(entry.manifest.type))); + const selected = loaded.filter((entry) => statuses.has(String(entry.manifest.status)) && types.has(String(entry.manifest.type)) + && (!guaranteeOwners.size || guaranteeOwners.has(String(entry.manifest.ownerPackage))) + && (!subtypes.size || subtypes.has(String(entry.manifest.subtype))) + && (!gates.size || (entry.manifest.gates ?? []).some((gate) => gates.has(String(gate)))) + && (!ids.size || ids.has(String(entry.manifest.id))) + && (!journeyIndexes.size || journeyIndexes.has(String(entry.manifest.journeyIndex)))); const closure = new Map(selected.map((entry) => [String(entry.manifest.id), { ...entry, selected: true }])); const queue = [...selected]; - while (queue.length) for (const dependency of dependencyIds(queue.shift().manifest)) { + while (includeDependencies && queue.length) for (const dependency of dependencyIds(queue.shift().manifest)) { if (closure.has(dependency)) continue; const found = byId.get(dependency); if (!found) diagnostics.push(diagnostic('guarantee.dependency_missing', `Guarantee dependency ${dependency} is absent from the packed catalog.`)); @@ -147,7 +162,7 @@ try { schemaVersion: 'treeseed.guarantee-plan/v1', ok: diagnostics.length === 0, composition: { release: release.release, generation: release.generation, track: release.track }, catalog: { packageName: ownerFilter, version: payload.version, artifact: payload.artifact }, - filter: { statuses: [...statuses], types: [...types] }, + filter: { statuses: [...statuses], types: [...types], guaranteeOwners: [...guaranteeOwners], subtypes: [...subtypes], gates: [...gates], ids: [...ids], journeyIndexes: [...journeyIndexes], includeDependencies }, counts: { selected: results.filter((entry) => entry.selected).length, withDependencies: results.length, errors: diagnostics.length }, verifiers: [...usedVerifierRefs].sort().map((ref) => ({ ref, registrySource: registrySources[ref], definition: declared[ref] })), payloads: [...new Set([...usedVerifierRefs].map((ref) => declared[ref]?.ownerPackage).filter(Boolean))].map((packageName) => payloadsByPackage.get(packageName)), diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs index 56bf7916..6e60b74f 100644 --- a/scripts/run-composition-guarantees.mjs +++ b/scripts/run-composition-guarantees.mjs @@ -64,11 +64,13 @@ function parseReport(stdout, definition) { } function verifierArgs() { - return [ + const args = [ '--api-origin', option('api-origin', 'http://api:3000'), '--mailpit-origin', option('mailpit-origin', 'http://mailpit:8025'), '--admin-origin', option('admin-origin', 'https://admin.treeseed.localhost'), ]; + for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); + return args; } async function executeLocal(definition, packageRoot) { @@ -126,8 +128,11 @@ const runId = option('run-id', `${new Date().toISOString().replace(/[:.]/gu, '-' const startedAt = new Date().toISOString(); if (!/^[A-Za-z0-9_.-]+$/u.test(runId)) throw new Error('Run ID must be filesystem and container safe.'); const release = JSON.parse(readFileSync(releasePath, 'utf8')); -const planner = spawnSync(process.execPath, [resolve(root, 'scripts/plan-composition-guarantees.mjs'), '--release', releasePath, - '--owner-package', option('owner-package', '@treeseed/admin'), '--types', option('types', 'user,team'), '--statuses', option('statuses', 'active')], +const plannerArgs = [resolve(root, 'scripts/plan-composition-guarantees.mjs'), '--release', releasePath, + '--owner-package', option('owner-package', '@treeseed/admin'), '--types', option('types', 'user,team'), '--statuses', option('statuses', 'active')]; +for (const name of ['guarantee-owner-package', 'subtypes', 'gates', 'ids', 'journey-indexes']) if (option(name, '')) plannerArgs.push(`--${name}`, option(name, '')); +if (process.argv.includes('--no-dependencies')) plannerArgs.push('--no-dependencies'); +const planner = spawnSync(process.execPath, plannerArgs, { cwd: root, encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); const plan = JSON.parse(planner.stdout); const finalRoot = resolve(outputRoot, runId); diff --git a/scripts/test-composition-guarantee-plan.mjs b/scripts/test-composition-guarantee-plan.mjs index 3668bc4b..343974a7 100644 --- a/scripts/test-composition-guarantee-plan.mjs +++ b/scripts/test-composition-guarantee-plan.mjs @@ -45,8 +45,8 @@ function fixture(name, withCatalog) { return release; } -function run(release) { - const result = spawnSync(process.execPath, ['scripts/plan-composition-guarantees.mjs', '--release', release], { cwd: root, encoding: 'utf8' }); +function run(release, args = []) { + const result = spawnSync(process.execPath, ['scripts/plan-composition-guarantees.mjs', '--release', release, ...args], { cwd: root, encoding: 'utf8' }); return { ...result, report: JSON.parse(result.stdout) }; } @@ -58,12 +58,16 @@ try { assert.equal(accepted.report.verifiers.length, 2); assert.equal(accepted.report.verifiers[0].registrySource, 'guarantees/verifiers/composition.verifiers.yaml'); assert.equal(accepted.report.verifiers[0].definition.kind, 'artifact'); + const focused = run(fixture('focused', true), ['--ids', 'guarantee.user.auth.example.001', '--no-dependencies']); + assert.equal(focused.status, 0); + assert.equal(focused.report.filter.includeDependencies, false); + assert.deepEqual(focused.report.filter.ids, ['guarantee.user.auth.example.001']); const missing = run(fixture('missing', false)); assert.equal(missing.status, 1); assert.equal(missing.report.ok, false); assert.equal(missing.report.diagnostics[0].code, 'guarantee.catalog_missing_from_artifact'); - process.stdout.write(`${JSON.stringify({ ok: true, cases: 2 })}\n`); + process.stdout.write(`${JSON.stringify({ ok: true, cases: 3 })}\n`); } finally { rmSync(temporary, { recursive: true, force: true }); } From bea08f43fc89bfc6df9e9908ba2886dfdb0b811f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 26 Aug 2026 21:44:20 -0400 Subject: [PATCH 017/501] chore: compose development generation 63 --- .../integration-releases/development.json | 24 +++++++++---------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f39daa84..a5f750ed 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,28 +1,28 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc88", - "generation": 62, + "release": "0.1.0~rc89", + "generation": 63, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c2af0c89b944f935bfca56e6bfb89e982c97976d" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "088d3d813c706fc60ae1ce8d6fd498ca2d027eb9" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4f183c7e73622bb873b8f41e04d3ea9e7bc850be", "tag": "0.1.0-rc.87" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.43", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.43.tgz", "sha256": "ed4ecdb496f103eb6308acbce95e7ec296f588c8623e8d8a2914760f09b06392" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.3", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.3.tgz", "sha256": "26f6bd3a63087caef50dd15dbf80b41c4af2671b3092e436a2dc63163cb6299d" } }, - { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.1", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.1.tgz", "sha256": "3b94927ca991e1a080fbe37083160885d8347f0b2577f3dcbee6760457271cc5" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.9.tgz", "sha256": "bc7e4a1eec85958652d7e861ccf71e3a7ddd2b3cf7937c004397f4fa9ad94721" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.1", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.1/treeseed-reviewer-0.1.0-rc.1.tgz", "sha256": "ba511ef432530cac0bd7704531e5df3471849c16ea96cc2a0cf72aaee26f90c7" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.24.tgz", "sha256": "ad953ce1ef0b266e6a2b02c85e38d9e8b645301021c4396b7634adcc8f555649" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.2", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.2.tgz", "sha256": "4969329064bb51a55095375723a6cdcaf8cdce01ee240b24c3c9d139868f3981" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.10.tgz", "sha256": "3361f7a9c9920753eb175cdbe01a29ae72e3f98376fbf647da74020903f835a2" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.2", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.2/treeseed-reviewer-0.1.0-rc.2.tgz", "sha256": "78c0c1d4992872280d83ae99b32a299afd87c841604a63983092a9dcc1da0038" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.25", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.25.tgz", "sha256": "514f7ffe7bc61c025a737b30adeab578891134cba5f405dbaf361b054e459c8c" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.41/component-release.json", "sha256": "93ff9fba7574ad655f474a5f1c6b3070b529ec631246b647625061748536ce99" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.41/compose.yml", "sha256": "cfb2f3c777316820017f35e34a66eb8cc87a9bd98bce7ada5500a9e86bc6ba9a" } }] }, - { "componentId": "admin", "release": "0.12.59~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.9/component-release.json", "sha256": "1d80fc7e0133caa08dbbebd11066cf46d318a92ddf2043704ee1cdff3a6f5ceb" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.9/compose.yml", "sha256": "cd6d5811cfa6d53e7dfde423d5d51069c090d77a967ffe34160798801472f58e" } }] }, + { "componentId": "api", "release": "0.8.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.42/component-release.json", "sha256": "5517f994566c22b3c143d97d70310c4e25b42500166faf933905d92283309167" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.42/compose.yml", "sha256": "3a5743ce169784d79233359c2d829b0d5708f67d269dd9c962e8c5b9e0007065" } }] }, + { "componentId": "admin", "release": "0.12.59~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.10/component-release.json", "sha256": "167e42d44d8aab6f67480db4a798d40d3f98badeeaf15e2e5c86ea31d34f3dac" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.10/compose.yml", "sha256": "0346a68263f17e2be7778dba7feb95639703934856c21555a989e137ff5c84cb" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-26T23:32:01.000Z" + "createdAt": "2026-08-27T01:39:46.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 76f41367..5c3c2cf9 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c2af0c89b944f935bfca56e6bfb89e982c97976d" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "7ffef1a40ccc650781b9a74580c77f2a0ea4d0d1", "tag": "0.1.0-rc.84" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "088d3d813c706fc60ae1ce8d6fd498ca2d027eb9" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4f183c7e73622bb873b8f41e04d3ea9e7bc850be", "tag": "0.1.0-rc.87" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 4fe3df06b947034643e8997f2baa3b70b86cf053 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 03:00:46 -0400 Subject: [PATCH 018/501] chore: compose development generation 64 --- .../integration-releases/development.json | 24 +++++++++---------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index a5f750ed..7981a60f 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,28 +1,28 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc89", - "generation": 63, + "release": "0.1.0~rc93", + "generation": 64, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "088d3d813c706fc60ae1ce8d6fd498ca2d027eb9" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4f183c7e73622bb873b8f41e04d3ea9e7bc850be", "tag": "0.1.0-rc.87" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6f87699c2ae13f1f992286a94c4bebec5856e0da" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bed8424b4ed4f3011f0e0d14798f6ce6262b5e5", "tag": "0.1.0-rc.93" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.3", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.3.tgz", "sha256": "26f6bd3a63087caef50dd15dbf80b41c4af2671b3092e436a2dc63163cb6299d" } }, - { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.2", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.2.tgz", "sha256": "4969329064bb51a55095375723a6cdcaf8cdce01ee240b24c3c9d139868f3981" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.10.tgz", "sha256": "3361f7a9c9920753eb175cdbe01a29ae72e3f98376fbf647da74020903f835a2" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.2", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.2/treeseed-reviewer-0.1.0-rc.2.tgz", "sha256": "78c0c1d4992872280d83ae99b32a299afd87c841604a63983092a9dcc1da0038" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.25", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.25.tgz", "sha256": "514f7ffe7bc61c025a737b30adeab578891134cba5f405dbaf361b054e459c8c" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.11.tgz", "sha256": "cdde0aa5d12bc1eff77c07821bd678758e3f9d560bfcccb6624f8010c06d2983" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.6", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.6/treeseed-reviewer-0.1.0-rc.6.tgz", "sha256": "d2e64ec49c196bd2678ce508555bdb79e580f3552c92bd7d391beb35d8a7c878" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.42/component-release.json", "sha256": "5517f994566c22b3c143d97d70310c4e25b42500166faf933905d92283309167" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.42/compose.yml", "sha256": "3a5743ce169784d79233359c2d829b0d5708f67d269dd9c962e8c5b9e0007065" } }] }, - { "componentId": "admin", "release": "0.12.59~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.10/component-release.json", "sha256": "167e42d44d8aab6f67480db4a798d40d3f98badeeaf15e2e5c86ea31d34f3dac" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.10/compose.yml", "sha256": "0346a68263f17e2be7778dba7feb95639703934856c21555a989e137ff5c84cb" } }] }, + { "componentId": "api", "release": "0.8.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/component-release.json", "sha256": "80e3bac46aa3dac37ab0877306d10dcb0d66627fc9ccfe5aca550f406c9bfc5d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/compose.yml", "sha256": "aa45addc6aae11f95468ae14e7d95e284b7b2045bd12a9136df73bd7c754fc7a" } }] }, + { "componentId": "admin", "release": "0.12.59~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.11/component-release.json", "sha256": "ec80871f24e500759429ab6d5d1377e040a3007538ebd7775df940d64d63d2a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.11/compose.yml", "sha256": "a35f3206a40ce719818b7e3e68967c8d44c2123c7929dd1152b0b17f68495ebe" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T01:39:46.000Z" + "createdAt": "2026-08-27T07:00:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 5c3c2cf9..5dfcafc0 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "088d3d813c706fc60ae1ce8d6fd498ca2d027eb9" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4f183c7e73622bb873b8f41e04d3ea9e7bc850be", "tag": "0.1.0-rc.87" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6f87699c2ae13f1f992286a94c4bebec5856e0da" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bed8424b4ed4f3011f0e0d14798f6ce6262b5e5", "tag": "0.1.0-rc.93" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 0e4043259bda6f578e0724d19418db6447ef5812 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 03:11:52 -0400 Subject: [PATCH 019/501] chore: bind API verifier payload in generation 65 --- deployment/integration-releases/development.json | 11 ++++++----- deployment/integration-releases/stable.json | 4 ++-- scripts/verify-platform.mjs | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 7981a60f..537560ad 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,13 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc93", - "generation": 64, + "release": "0.1.0~rc94", + "generation": 65, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6f87699c2ae13f1f992286a94c4bebec5856e0da" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bed8424b4ed4f3011f0e0d14798f6ce6262b5e5", "tag": "0.1.0-rc.93" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c42383d4701a69adf3a21151d9689d926752b30e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4aac9ac5e5239f17388ca015ea78fea62c555631", "tag": "0.1.0-rc.94" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.44", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/treeseed-api-0.8.0-rc.44.tgz", "sha256": "8e67081ef422528aa245c5bcaf7daba8154542b2e329cda46356c3b6da948fe3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.11.tgz", "sha256": "cdde0aa5d12bc1eff77c07821bd678758e3f9d560bfcccb6624f8010c06d2983" } }, @@ -24,5 +25,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T07:00:00.000Z" + "createdAt": "2026-08-27T07:11:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 5dfcafc0..2bc4dd07 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6f87699c2ae13f1f992286a94c4bebec5856e0da" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bed8424b4ed4f3011f0e0d14798f6ce6262b5e5", "tag": "0.1.0-rc.93" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c42383d4701a69adf3a21151d9689d926752b30e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4aac9ac5e5239f17388ca015ea78fea62c555631", "tag": "0.1.0-rc.94" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index e8284c61..f51b374f 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -97,7 +97,7 @@ const developmentIntegration = JSON.parse(read('deployment/integration-releases/ if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); if (developmentIntegration.platform?.commit !== stableIntegration.platform?.commit || developmentIntegration.deployment?.commit !== stableIntegration.deployment?.commit) fail('Stable and development locks must identify the same reviewed Platform and Deployment sources.'); -if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'cli', 'core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload set.'); +if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, and Lab component set.'); for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); for (const component of developmentIntegration.components ?? []) { From d9aa2cdcc23ad1cc3e94f2901726c964d89a8b88 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 03:31:11 -0400 Subject: [PATCH 020/501] chore: compose development generation 66 --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 537560ad..a85fc111 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc94", - "generation": 65, + "release": "0.1.0~rc95", + "generation": 66, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c42383d4701a69adf3a21151d9689d926752b30e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4aac9ac5e5239f17388ca015ea78fea62c555631", "tag": "0.1.0-rc.94" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d4b9062f8930dfed01768b0c752be3802dd701bf" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ed535270c80ad30568ba818ab3f69f0a834de441", "tag": "0.1.0-rc.95" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.44", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/treeseed-api-0.8.0-rc.44.tgz", "sha256": "8e67081ef422528aa245c5bcaf7daba8154542b2e329cda46356c3b6da948fe3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.11.tgz", "sha256": "cdde0aa5d12bc1eff77c07821bd678758e3f9d560bfcccb6624f8010c06d2983" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.12.tgz", "sha256": "e38db40439abaafc2a07501c455e16333317006e0fcf769695d40ad571bc9fbb" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.6", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.6/treeseed-reviewer-0.1.0-rc.6.tgz", "sha256": "d2e64ec49c196bd2678ce508555bdb79e580f3552c92bd7d391beb35d8a7c878" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, @@ -20,10 +20,10 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/component-release.json", "sha256": "80e3bac46aa3dac37ab0877306d10dcb0d66627fc9ccfe5aca550f406c9bfc5d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/compose.yml", "sha256": "aa45addc6aae11f95468ae14e7d95e284b7b2045bd12a9136df73bd7c754fc7a" } }] }, - { "componentId": "admin", "release": "0.12.59~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.11/component-release.json", "sha256": "ec80871f24e500759429ab6d5d1377e040a3007538ebd7775df940d64d63d2a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.11/compose.yml", "sha256": "a35f3206a40ce719818b7e3e68967c8d44c2123c7929dd1152b0b17f68495ebe" } }] }, + { "componentId": "admin", "release": "0.12.59~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.12/component-release.json", "sha256": "764a501ad7ab351ea72325aef87c3a2053c36d48323cd66de47289c0baabcd31" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.12/compose.yml", "sha256": "3b2efcfd4e0cc0fba726831a9632b700afbdbc11ed29036775be43ba0d8d2b4c" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T07:11:00.000Z" + "createdAt": "2026-08-27T07:30:30.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 2bc4dd07..5a9f9156 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c42383d4701a69adf3a21151d9689d926752b30e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4aac9ac5e5239f17388ca015ea78fea62c555631", "tag": "0.1.0-rc.94" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d4b9062f8930dfed01768b0c752be3802dd701bf" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ed535270c80ad30568ba818ab3f69f0a834de441", "tag": "0.1.0-rc.95" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From a83228066ecde5473df0cb367f434efb8e87ddfd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 04:06:39 -0400 Subject: [PATCH 021/501] chore: compose development generation 67 (#166) --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index a85fc111..ad7cbb38 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,18 +1,18 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc95", - "generation": 66, + "release": "0.1.0~rc96", + "generation": 67, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d4b9062f8930dfed01768b0c752be3802dd701bf" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ed535270c80ad30568ba818ab3f69f0a834de441", "tag": "0.1.0-rc.95" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ed93cd5832a87270f8ae21edfc97b17740640e11" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "322393accb1a485d6bf148eeb300456e6807d0a5", "tag": "0.1.0-rc.96" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.44", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/treeseed-api-0.8.0-rc.44.tgz", "sha256": "8e67081ef422528aa245c5bcaf7daba8154542b2e329cda46356c3b6da948fe3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.12.tgz", "sha256": "e38db40439abaafc2a07501c455e16333317006e0fcf769695d40ad571bc9fbb" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.6", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.6/treeseed-reviewer-0.1.0-rc.6.tgz", "sha256": "d2e64ec49c196bd2678ce508555bdb79e580f3552c92bd7d391beb35d8a7c878" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.13.tgz", "sha256": "bd048bcf4aeb28ce150d427f301cc8764e9efed1410af1bac610c12d28f716f5" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.7", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.7/treeseed-reviewer-0.1.0-rc.7.tgz", "sha256": "4a7b627ccc1e09c526c7bb631d78c9fc38885089d0402865522935dbcc2fd6bc" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, @@ -20,7 +20,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/component-release.json", "sha256": "80e3bac46aa3dac37ab0877306d10dcb0d66627fc9ccfe5aca550f406c9bfc5d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/compose.yml", "sha256": "aa45addc6aae11f95468ae14e7d95e284b7b2045bd12a9136df73bd7c754fc7a" } }] }, - { "componentId": "admin", "release": "0.12.59~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.12/component-release.json", "sha256": "764a501ad7ab351ea72325aef87c3a2053c36d48323cd66de47289c0baabcd31" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.12/compose.yml", "sha256": "3b2efcfd4e0cc0fba726831a9632b700afbdbc11ed29036775be43ba0d8d2b4c" } }] }, + { "componentId": "admin", "release": "0.12.59~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.13/component-release.json", "sha256": "9f32577cecf4a4a4949a050cb8dda6c43c2a82ea56dd6e0b8e175600c5503604" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.13/compose.yml", "sha256": "f01240f3ca00b6d1e36b5ef17cabbdd09e0d52667fd3fd47c6fe1ecb2c1f6090" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 5a9f9156..79dcde1f 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d4b9062f8930dfed01768b0c752be3802dd701bf" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ed535270c80ad30568ba818ab3f69f0a834de441", "tag": "0.1.0-rc.95" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ed93cd5832a87270f8ae21edfc97b17740640e11" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "322393accb1a485d6bf148eeb300456e6807d0a5", "tag": "0.1.0-rc.96" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 04:49:21 -0400 Subject: [PATCH 022/501] chore: compose development generation 68 (#167) --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index ad7cbb38..b45304f0 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,18 +1,18 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc96", - "generation": 67, + "release": "0.1.0~rc97", + "generation": 68, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ed93cd5832a87270f8ae21edfc97b17740640e11" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "322393accb1a485d6bf148eeb300456e6807d0a5", "tag": "0.1.0-rc.96" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "a83228066ecde5473df0cb367f434efb8e87ddfd" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.44", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/treeseed-api-0.8.0-rc.44.tgz", "sha256": "8e67081ef422528aa245c5bcaf7daba8154542b2e329cda46356c3b6da948fe3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.13.tgz", "sha256": "bd048bcf4aeb28ce150d427f301cc8764e9efed1410af1bac610c12d28f716f5" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.7", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.7/treeseed-reviewer-0.1.0-rc.7.tgz", "sha256": "4a7b627ccc1e09c526c7bb631d78c9fc38885089d0402865522935dbcc2fd6bc" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.14.tgz", "sha256": "b72a8166aa164cd3c7280c3f21a021e553609caff6ce6586cbbc37a77665eeb9" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.8", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.8/treeseed-reviewer-0.1.0-rc.8.tgz", "sha256": "d417181c75653777981c10784c0165ca6adcc360f82cd432fb8af35c5a918885" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, @@ -20,7 +20,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/component-release.json", "sha256": "80e3bac46aa3dac37ab0877306d10dcb0d66627fc9ccfe5aca550f406c9bfc5d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/compose.yml", "sha256": "aa45addc6aae11f95468ae14e7d95e284b7b2045bd12a9136df73bd7c754fc7a" } }] }, - { "componentId": "admin", "release": "0.12.59~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.13/component-release.json", "sha256": "9f32577cecf4a4a4949a050cb8dda6c43c2a82ea56dd6e0b8e175600c5503604" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.13/compose.yml", "sha256": "f01240f3ca00b6d1e36b5ef17cabbdd09e0d52667fd3fd47c6fe1ecb2c1f6090" } }] }, + { "componentId": "admin", "release": "0.12.59~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.14/component-release.json", "sha256": "ce39cd95604fa160d66f01af91afa36345bd04c8df5ab2aba812af015c8579a8" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.14/compose.yml", "sha256": "d16a1a46555b59ff30d56679e0fc5e844e6f108519fb2930bbc3335529d2d96b" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 79dcde1f..883f8b64 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ed93cd5832a87270f8ae21edfc97b17740640e11" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "322393accb1a485d6bf148eeb300456e6807d0a5", "tag": "0.1.0-rc.96" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "a83228066ecde5473df0cb367f434efb8e87ddfd" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From c32719ecfadcc69480b4aeeebe83fb8c61be7f11 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 06:04:08 -0400 Subject: [PATCH 023/501] chore: compose development generation 69 (#169) --- .../integration-releases/development.json | 18 +++++++++--------- deployment/integration-releases/stable.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index b45304f0..de715ff1 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,29 +1,29 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc97", - "generation": 68, + "generation": 69, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "a83228066ecde5473df0cb367f434efb8e87ddfd" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.44.tgz", "sha256": "f655086c440c97cd3989faa28e5042523a0e30427006027877e58357c50b7782" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.44", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/treeseed-api-0.8.0-rc.44.tgz", "sha256": "8e67081ef422528aa245c5bcaf7daba8154542b2e329cda46356c3b6da948fe3" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.14.tgz", "sha256": "b72a8166aa164cd3c7280c3f21a021e553609caff6ce6586cbbc37a77665eeb9" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.8", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.8/treeseed-reviewer-0.1.0-rc.8.tgz", "sha256": "d417181c75653777981c10784c0165ca6adcc360f82cd432fb8af35c5a918885" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.15.tgz", "sha256": "5ca6a6d13a2ec6bcd9baea5d4c258e3352c3b85685fbd9aab8955f578e12142e" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.9", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.9/treeseed-reviewer-0.1.0-rc.9.tgz", "sha256": "f09730ab09b7d2eb547e978374855bfb83ee8cae76e19e59823169ae4aabafd5" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/component-release.json", "sha256": "80e3bac46aa3dac37ab0877306d10dcb0d66627fc9ccfe5aca550f406c9bfc5d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.44/compose.yml", "sha256": "aa45addc6aae11f95468ae14e7d95e284b7b2045bd12a9136df73bd7c754fc7a" } }] }, - { "componentId": "admin", "release": "0.12.59~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.14/component-release.json", "sha256": "ce39cd95604fa160d66f01af91afa36345bd04c8df5ab2aba812af015c8579a8" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.14/compose.yml", "sha256": "d16a1a46555b59ff30d56679e0fc5e844e6f108519fb2930bbc3335529d2d96b" } }] }, + { "componentId": "api", "release": "0.8.0~rc45-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/component-release.json", "sha256": "c09d593489ba42676f602094dd12954ec8695994298d913700cb37b43278cb4b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/compose.yml", "sha256": "83849acf16cfbbfb461b636a8932dd4cd610a5e64ed91cd5bd882c5a51fc7553" } }] }, + { "componentId": "admin", "release": "0.12.59~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.15/component-release.json", "sha256": "b7d8d06a31c18e34f652ead331f7fc993473b07f7a8584c62c79f4e4629ee35e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.15/compose.yml", "sha256": "bbc013cd374421ebc9b109dafa378c631880e80d9a82e3eb414a4a3d61ae3c05" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T07:30:30.000Z" + "createdAt": "2026-08-27T10:02:08.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 883f8b64..581988ec 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,7 +4,7 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "a83228066ecde5473df0cb367f434efb8e87ddfd" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, From be5c0206a108d8838753137e8d60e9e5a3cf0768 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 06:08:11 -0400 Subject: [PATCH 024/501] chore: bind generation 69 to deployment rc98 (#170) --- deployment/integration-releases/development.json | 4 ++-- deployment/integration-releases/stable.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index de715ff1..6c793617 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc97", + "release": "0.1.0~rc98", "generation": 69, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.98" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 581988ec..a392906d 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5e44bab8402932cb0bdcb656eeefd9b7a1cc24dc", "tag": "0.1.0-rc.97" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.98" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From d8b9012de9160ab5c98e01518afb968558ed7c1c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 06:32:22 -0400 Subject: [PATCH 025/501] fix(guarantees): wire packaged admin browser catalog (#171) --- scripts/run-composition-guarantees.mjs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs index 6e60b74f..36008f12 100644 --- a/scripts/run-composition-guarantees.mjs +++ b/scripts/run-composition-guarantees.mjs @@ -63,17 +63,19 @@ function parseReport(stdout, definition) { return report; } -function verifierArgs() { +function verifierArgs({ adminPackageRoot } = {}) { const args = [ '--api-origin', option('api-origin', 'http://api:3000'), '--mailpit-origin', option('mailpit-origin', 'http://mailpit:8025'), '--admin-origin', option('admin-origin', 'https://admin.treeseed.localhost'), ]; for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); + if (adminPackageRoot) args.push('--admin-package-root', adminPackageRoot); + args.push('--device-profile', option('device', 'desktop_chromium')); return args; } -async function executeLocal(definition, packageRoot) { +async function executeLocal(definition, packageRoot, roots) { const entrypoint = resolve(packageRoot, definition.entrypoint); if (!entrypoint.startsWith(`${packageRoot}/`) || !existsSync(entrypoint)) throw new Error(`Missing safe entrypoint ${definition.entrypoint}.`); if (definition.exportName) { @@ -82,7 +84,7 @@ async function executeLocal(definition, packageRoot) { const report = await module[definition.exportName](); return { report: parseReport(JSON.stringify(report), definition), execution: { mode: 'local-export' } }; } - const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs()], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); + const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs({ adminPackageRoot: roots.get('@treeseed/admin') })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); const report = parseReport(redact(child.stdout), definition); if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); return { report, execution: { mode: 'local-process', exitCode: child.status } }; @@ -105,7 +107,8 @@ function executeInContainer(definition, container, nodeModules, runId) { if (child.status !== 0) throw new Error(redact(child.stderr)); child = spawnSync('docker', ['cp', `${nodeModules}/.`, `${container}:${target}/node_modules`], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); if (child.status !== 0) throw new Error(redact(child.stderr)); - child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, ...verifierArgs()], { + child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, + ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin` })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, }); const report = parseReport(redact(child.stdout), definition); @@ -156,7 +159,7 @@ try { const container = containers.get(definition.ownerPackage); const executed = container ? executeInContainer(definition, container, nodeModules, runId) - : await executeLocal(definition, roots.get(definition.ownerPackage)); + : await executeLocal(definition, roots.get(definition.ownerPackage), roots); executions.set(key, executed); } catch (error) { executions.set(key, { error: redact(error instanceof Error ? error.message : error), execution: { mode: 'failed' } }); From dbca6810010a0ffbd9ce82f5308f03b3990df0e3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 06:39:46 -0400 Subject: [PATCH 026/501] chore: pin admin rc16 in generation 70 (#172) --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 6c793617..42025286 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc98", - "generation": 69, + "release": "0.1.0~rc99", + "generation": 70, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.98" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.99" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.15.tgz", "sha256": "5ca6a6d13a2ec6bcd9baea5d4c258e3352c3b85685fbd9aab8955f578e12142e" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.16.tgz", "sha256": "843a5414d08a0758d5717525cc3d202aa807e1c2bcd8a936d8d74d2284c389fe" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.9", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.9/treeseed-reviewer-0.1.0-rc.9.tgz", "sha256": "f09730ab09b7d2eb547e978374855bfb83ee8cae76e19e59823169ae4aabafd5" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, @@ -20,10 +20,10 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc45-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/component-release.json", "sha256": "c09d593489ba42676f602094dd12954ec8695994298d913700cb37b43278cb4b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/compose.yml", "sha256": "83849acf16cfbbfb461b636a8932dd4cd610a5e64ed91cd5bd882c5a51fc7553" } }] }, - { "componentId": "admin", "release": "0.12.59~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.15/component-release.json", "sha256": "b7d8d06a31c18e34f652ead331f7fc993473b07f7a8584c62c79f4e4629ee35e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.15/compose.yml", "sha256": "bbc013cd374421ebc9b109dafa378c631880e80d9a82e3eb414a4a3d61ae3c05" } }] }, + { "componentId": "admin", "release": "0.12.59~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.16/component-release.json", "sha256": "86bf2cbbc30e2f2c1b371af51e001ff691e0ee96540fa4cf0de0936dabb51e14" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.16/compose.yml", "sha256": "4a70c502a0983c53f6a36082b78da15fb20600767fdca1f9ad2e6b77270580d6" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T10:02:08.000Z" + "createdAt": "2026-08-27T10:36:00.000Z" } From 4010e19f623577b783dd999952a6ffeb06c43571 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 06:52:20 -0400 Subject: [PATCH 027/501] chore: bind generation 70 to deployment rc100 (#173) --- deployment/integration-releases/development.json | 4 ++-- deployment/integration-releases/stable.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 42025286..012bb6da 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc99", + "release": "0.1.0~rc100", "generation": 70, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.99" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d984e058221f38d6a327e8a9e2076aa250579477", "tag": "0.1.0-rc.100" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index a392906d..b1f5ddee 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c016e851a9c62795c5cf7ca5520747d2bc134e14", "tag": "0.1.0-rc.98" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d984e058221f38d6a327e8a9e2076aa250579477", "tag": "0.1.0-rc.100" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 9a1a6641de437b2b783f909b4d495013b7cbd60a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 07:12:24 -0400 Subject: [PATCH 028/501] fix(guarantees): hydrate reviewer browser runtime (#174) --- deployment/integration-releases/development.json | 9 +++++---- deployment/integration-releases/stable.json | 2 +- scripts/run-composition-guarantees.mjs | 13 ++++++++----- scripts/verify-platform.mjs | 2 +- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 012bb6da..fe79ebf8 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc100", - "generation": 70, + "release": "0.1.0~rc101", + "generation": 71, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "d984e058221f38d6a327e8a9e2076aa250579477", "tag": "0.1.0-rc.100" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3908323cd3b04379a13c59fd361ce5c9922a8c67", "tag": "0.1.0-rc.101" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, @@ -13,6 +13,7 @@ { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.16.tgz", "sha256": "843a5414d08a0758d5717525cc3d202aa807e1c2bcd8a936d8d74d2284c389fe" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.9", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.9/treeseed-reviewer-0.1.0-rc.9.tgz", "sha256": "f09730ab09b7d2eb547e978374855bfb83ee8cae76e19e59823169ae4aabafd5" } }, + { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, @@ -25,5 +26,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T10:36:00.000Z" + "createdAt": "2026-08-27T11:10:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index b1f5ddee..82829d1a 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "d984e058221f38d6a327e8a9e2076aa250579477", "tag": "0.1.0-rc.100" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3908323cd3b04379a13c59fd361ce5c9922a8c67", "tag": "0.1.0-rc.101" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs index 36008f12..696d3519 100644 --- a/scripts/run-composition-guarantees.mjs +++ b/scripts/run-composition-guarantees.mjs @@ -63,11 +63,11 @@ function parseReport(stdout, definition) { return report; } -function verifierArgs({ adminPackageRoot } = {}) { +function verifierArgs({ adminPackageRoot, apiOrigin, mailpitOrigin, adminOrigin } = {}) { const args = [ - '--api-origin', option('api-origin', 'http://api:3000'), - '--mailpit-origin', option('mailpit-origin', 'http://mailpit:8025'), - '--admin-origin', option('admin-origin', 'https://admin.treeseed.localhost'), + '--api-origin', apiOrigin ?? option('api-origin', 'http://api:3000'), + '--mailpit-origin', mailpitOrigin ?? option('mailpit-origin', 'http://mailpit:8025'), + '--admin-origin', adminOrigin ?? option('admin-origin', 'https://admin.treeseed.localhost'), ]; for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); if (adminPackageRoot) args.push('--admin-package-root', adminPackageRoot); @@ -108,7 +108,10 @@ function executeInContainer(definition, container, nodeModules, runId) { child = spawnSync('docker', ['cp', `${nodeModules}/.`, `${container}:${target}/node_modules`], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); if (child.status !== 0) throw new Error(redact(child.stderr)); child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, - ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin` })], { + ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin`, + apiOrigin: option('container-api-origin', 'http://api:3000'), + mailpitOrigin: option('container-mailpit-origin', 'http://mailpit:8025'), + adminOrigin: option('container-admin-origin', 'https://admin.treeseed.localhost') })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, }); const report = parseReport(redact(child.stdout), definition); diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index f51b374f..506a96f7 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -97,7 +97,7 @@ const developmentIntegration = JSON.parse(read('deployment/integration-releases/ if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); if (developmentIntegration.platform?.commit !== stableIntegration.platform?.commit || developmentIntegration.deployment?.commit !== stableIntegration.deployment?.commit) fail('Stable and development locks must identify the same reviewed Platform and Deployment sources.'); -if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); +if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'playwright-core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, and Lab component set.'); for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); for (const component of developmentIntegration.components ?? []) { From 44ade6b7790798638c9c461edcc6760f44260861 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 15:55:41 -0400 Subject: [PATCH 029/501] chore: compose development generation 72 (#176) --- deployment/integration-releases/development.json | 16 ++++++++-------- deployment/integration-releases/stable.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index fe79ebf8..88ab91b0 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,30 +1,30 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc101", - "generation": 71, + "release": "0.1.0~rc102", + "generation": 72, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3908323cd3b04379a13c59fd361ce5c9922a8c67", "tag": "0.1.0-rc.101" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9832d7e96b16b258672810a09243c56777641b3b", "tag": "0.1.0-rc.102" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.16.tgz", "sha256": "843a5414d08a0758d5717525cc3d202aa807e1c2bcd8a936d8d74d2284c389fe" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.9", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.9/treeseed-reviewer-0.1.0-rc.9.tgz", "sha256": "f09730ab09b7d2eb547e978374855bfb83ee8cae76e19e59823169ae4aabafd5" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.17.tgz", "sha256": "b392a99ba9be3cb734a1736ec4f1fae7ecee667281ed896c7af9fea8c9f31dbe" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.10", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.10/treeseed-reviewer-0.1.0-rc.10.tgz", "sha256": "f2bd9f470a93fd474d21f4ea211614cc326a5af3ae9a0cfc7c7d799e856f48f9" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.26.tgz", "sha256": "378271976e9e9cf06cbe5cd19c826b65900eff95f2b3e0d5488c273d2c54def7" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.27", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.27.tgz", "sha256": "ac126921e0b399ba7d2efbc7e61533b537490b7c2e867f017f90fc82621f9256" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ { "componentId": "api", "release": "0.8.0~rc45-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/component-release.json", "sha256": "c09d593489ba42676f602094dd12954ec8695994298d913700cb37b43278cb4b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/compose.yml", "sha256": "83849acf16cfbbfb461b636a8932dd4cd610a5e64ed91cd5bd882c5a51fc7553" } }] }, - { "componentId": "admin", "release": "0.12.59~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.16/component-release.json", "sha256": "86bf2cbbc30e2f2c1b371af51e001ff691e0ee96540fa4cf0de0936dabb51e14" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.16/compose.yml", "sha256": "4a70c502a0983c53f6a36082b78da15fb20600767fdca1f9ad2e6b77270580d6" } }] }, + { "componentId": "admin", "release": "0.12.59~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.17/component-release.json", "sha256": "2a7776f203f57d50f6e9c1e596dbaf5e903d486046ab1d1264f309264c29354c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.17/compose.yml", "sha256": "a58a35bf63771987d36c069dad7165abbc43bc56467ed5c783ef3f79cd574615" } }] }, { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T11:10:00.000Z" + "createdAt": "2026-08-27T19:55:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 82829d1a..390d77b7 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3908323cd3b04379a13c59fd361ce5c9922a8c67", "tag": "0.1.0-rc.101" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9832d7e96b16b258672810a09243c56777641b3b", "tag": "0.1.0-rc.102" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 0af2640405503e72a13b455193355f944bd41a94 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 16:04:32 -0400 Subject: [PATCH 030/501] chore: bind generation 73 to deployment rc103 (#177) --- deployment/integration-releases/development.json | 8 ++++---- deployment/integration-releases/stable.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 88ab91b0..99857c6b 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc102", - "generation": 72, + "release": "0.1.0~rc103", + "generation": 73, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9832d7e96b16b258672810a09243c56777641b3b", "tag": "0.1.0-rc.102" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "89ec66a95f57c45d9fc712988ef2b29447f25dba", "tag": "0.1.0-rc.103" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, @@ -26,5 +26,5 @@ { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } ], - "createdAt": "2026-08-27T19:55:00.000Z" + "createdAt": "2026-08-27T20:03:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 390d77b7..821af8f2 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9832d7e96b16b258672810a09243c56777641b3b", "tag": "0.1.0-rc.102" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "89ec66a95f57c45d9fc712988ef2b29447f25dba", "tag": "0.1.0-rc.103" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From d66299bb0b3c87c1f262cb7eebafce8f2f1a47bd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 18:01:50 -0400 Subject: [PATCH 031/501] feat: add opt-in TreeAI component profiles --- .../host-configs/development-workstation.json | 14 +++++++++- deployment/profiles/ai-connected.json | 16 +++++++++++ deployment/profiles/ai-factory.json | 10 +++++++ deployment/profiles/ai-inference.json | 10 +++++++ deployment/profiles/ai-training.json | 10 +++++++ deployment/treeai-component-inputs.json | 28 +++++++++++++++++++ development.session.yaml | 6 ++++ scripts/verify-platform.mjs | 15 +++++++++- 8 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 deployment/profiles/ai-connected.json create mode 100644 deployment/profiles/ai-factory.json create mode 100644 deployment/profiles/ai-inference.json create mode 100644 deployment/profiles/ai-training.json create mode 100644 deployment/treeai-component-inputs.json diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 0e7ea365..0bb255b3 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -113,7 +113,19 @@ }, "configuration": { "environment": {} } }, - "ai": { + "ai-inference": { + "enabled": false, + "track": "stable", + "aliases": {}, + "configuration": {} + }, + "ai-training": { + "enabled": false, + "track": "stable", + "aliases": {}, + "configuration": {} + }, + "ai-lab": { "enabled": false, "track": "stable", "aliases": {}, diff --git a/deployment/profiles/ai-connected.json b/deployment/profiles/ai-connected.json new file mode 100644 index 00000000..e6b0ce3f --- /dev/null +++ b/deployment/profiles/ai-connected.json @@ -0,0 +1,16 @@ +{ + "schemaVersion": "treeseed.platform-profile/v1", + "id": "ai-connected", + "default": false, + "extends": "ai-factory", + "components": { + "api": { + "enabled": true, + "configuration": { + "environment": { "TREESEED_TREEAI_NODES": "{\"local-ai\":{\"endpoints\":{\"inference\":\"http://inference-api:4770\",\"training\":\"http://training-api:4780\",\"lab\":\"http://lab-controller:4793\",\"qualification\":\"http://manager:4790\"},\"tokenEnvironment\":\"TREESEED_TREEAI_OPERATOR_TOKEN\"}}" }, + "secretEnvironment": { "TREESEED_TREEAI_OPERATOR_TOKEN": "treeai-operator-token" } + } + } + }, + "secrets": { "treeai-operator-token": { "provider": "file", "reference": "/etc/treeseed/credentials/treeai-operator-token" } } +} diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json new file mode 100644 index 00000000..619e0524 --- /dev/null +++ b/deployment/profiles/ai-factory.json @@ -0,0 +1,10 @@ +{ + "schemaVersion": "treeseed.platform-profile/v1", + "id": "ai-factory", + "default": false, + "components": { + "ai-inference": { "enabled": true, "track": "development", "aliases": { "inference-api.http": "inference.ai.treeseed.localhost" } }, + "ai-training": { "enabled": true, "track": "development", "aliases": { "training-api.http": "training.ai.treeseed.localhost" } }, + "ai-lab": { "enabled": true, "track": "development", "aliases": { "open-webui.https": "chat.ai.treeseed.localhost", "hermes-dashboard.https": "hermes.ai.treeseed.localhost" } } + } +} diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json new file mode 100644 index 00000000..a5fb43e5 --- /dev/null +++ b/deployment/profiles/ai-inference.json @@ -0,0 +1,10 @@ +{ + "schemaVersion": "treeseed.platform-profile/v1", + "id": "ai-inference", + "default": false, + "components": { + "ai-inference": { "enabled": true, "track": "development", "aliases": { "inference-api.http": "inference.ai.treeseed.localhost" } }, + "ai-training": { "enabled": false }, + "ai-lab": { "enabled": false } + } +} diff --git a/deployment/profiles/ai-training.json b/deployment/profiles/ai-training.json new file mode 100644 index 00000000..a791af06 --- /dev/null +++ b/deployment/profiles/ai-training.json @@ -0,0 +1,10 @@ +{ + "schemaVersion": "treeseed.platform-profile/v1", + "id": "ai-training", + "default": false, + "components": { + "ai-inference": { "enabled": false }, + "ai-training": { "enabled": true, "track": "development", "aliases": { "training-api.http": "training.ai.treeseed.localhost" } }, + "ai-lab": { "enabled": false } + } +} diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json new file mode 100644 index 00000000..68103e84 --- /dev/null +++ b/deployment/treeai-component-inputs.json @@ -0,0 +1,28 @@ +{ + "schemaVersion": "treeseed.platform-component-inputs/v1", + "release": "0.11.0-rc2", + "sourceCommit": "9770c99ba3a2f91ce916b48efafa45b0e971bbf0", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc2", + "contractReleaseSha256": "59b5fe6f0f766fa730943ae90301a3aac2e751fe6a528ea0e5271972941dc2ae", + "imageManifestSha256": "09791390dd254e116f003ed9b6d99530423a97d7e7eb39cc00a68d88456df7c3", + "components": [ + { + "componentId": "ai-inference", + "dependencies": [], + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-inference-component-release.json", "sha256": "59f9bae69f7e99eb1dda9dfd2aa9cf95da0b28bb5e75241c0edbc8452028fe5a" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-inference-compose.yml", "sha256": "2e923383af24b0842519cc49daefe6825b959f8948ca1f5f962cbf3031515912" } + }, + { + "componentId": "ai-training", + "dependencies": [], + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-training-component-release.json", "sha256": "21f34dcf8e055da96e09b8d492ea399899b084ef82e3a2af20dbee7e351426cf" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-training-compose.yml", "sha256": "b44bff124de06782163573d92c8195378070af9d240dad83e041d82411944a88" } + }, + { + "componentId": "ai-lab", + "dependencies": ["ai-inference", "ai-training"], + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-lab-component-release.json", "sha256": "123583a503b64232edc91778e1f818f1495c60b485a7da592a1013ad16a983bd" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-lab-compose.yml", "sha256": "48b4e9b7430a0820a31dc8e75a855e7b1b05239b0341abc1ea4a15fab632cbed" } + } + ] +} diff --git a/development.session.yaml b/development.session.yaml index d9eb6fc4..3b8a99bf 100644 --- a/development.session.yaml +++ b/development.session.yaml @@ -1,5 +1,11 @@ schemaVersion: treeseed.development-selection/v1 projects: + - manifest: packages/ai/treeseed.package.yaml + worktree: packages/ai + targets: + - { id: ai-inference, mode: released } + - { id: ai-training, mode: released } + - { id: ai-lab, mode: released } - manifest: packages/sdk/treeseed.package.yaml worktree: packages/sdk targets: [{ id: package, mode: released }] diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 506a96f7..d73d9be1 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -19,7 +19,7 @@ const index = execFileSync('git', ['ls-files', '--stage'], { cwd: root, encoding const gitlinks = index.split('\n').filter((line) => line.startsWith('160000 ')); if (gitlinks.length) fail(`Platform contains forbidden gitlinks: ${gitlinks.join(', ')}`); -for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml', 'deployment/host-configs/development-workstation.json', 'deployment/host-configs/capacity-provider-development.json', 'deployment/integration-releases/stable.json', 'deployment/integration-releases/development.json', 'docs/multi-host-deployment.md']) requireFile(path); +for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml', 'deployment/host-configs/development-workstation.json', 'deployment/host-configs/capacity-provider-development.json', 'deployment/integration-releases/stable.json', 'deployment/integration-releases/development.json', 'deployment/treeai-component-inputs.json', 'docs/multi-host-deployment.md']) requireFile(path); for (const path of ['seeds/agents.yaml', 'seeds/platform.yaml', 'treeseed.agents-capacity-provider.yaml', 'treeseed.platform-capacity-provider.yaml']) { if (existsSync(resolve(root, path))) fail(`Platform retains obsolete split-provider input ${path}.`); } @@ -53,6 +53,7 @@ const host = JSON.parse(read('deployment/host-configs/development-workstation.js if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || !host.runtime?.dataRoot?.endsWith('/platform/.treeseed/data')) fail('Development workstation must use the current integrated managed-host contract and workspace-visible data root.'); if (host.updates?.defaultTrack !== 'development' || host.updates?.stable?.maintenanceWindow?.weekday !== 'sunday' || host.updates?.stable?.maintenanceWindow?.localTime !== '03:00') fail('Development workstation must poll development while preserving the stable weekly activation policy.'); for (const componentId of ['api', 'admin', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); +for (const componentId of ['ai-inference', 'ai-training', 'ai-lab']) if (host.components?.[componentId]?.enabled !== false) fail(`Default workstation must leave ${componentId} disabled.`); const aliases = [host.network?.manager?.aliases ?? [], ...Object.values(host.components ?? {}).flatMap((component) => Object.values(component.aliases ?? {}))].flat(); if (aliases.length !== new Set(aliases).size || aliases.some((alias) => !/^[a-z0-9.-]+\.localhost$/u.test(alias))) fail('Local aliases must be unique and remain in the .localhost namespace.'); const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => Object.keys(component.aliases ?? {})); @@ -92,6 +93,18 @@ const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider- if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); +const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc2' || !/^[a-f0-9]{40}$/u.test(treeAiInputs.sourceCommit)) fail('TreeAI component inputs must identify the exact independent RC source.'); +if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); +for (const component of treeAiInputs.components) { + if (!/^https:\/\/github\.com\/treeseed-ai\/ai\/releases\/download\//u.test(component.manifest?.url) + || !/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || !/^[a-f0-9]{64}$/u.test(component.compose?.sha256 ?? '')) fail(`TreeAI ${component.componentId} is not independently digest locked.`); +} +for (const profileId of ['ai-inference', 'ai-training', 'ai-factory', 'ai-connected']) { + const profile = JSON.parse(read(`deployment/profiles/${profileId}.json`)); + if (profile.schemaVersion !== 'treeseed.platform-profile/v1' || profile.id !== profileId || profile.default !== false) fail(`TreeAI profile ${profileId} must remain explicit and opt-in.`); +} + const stableIntegration = JSON.parse(read('deployment/integration-releases/stable.json')); const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); From e1d647f22e0c0d2216cc2543a2d0badebabcbfab Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 18:22:30 -0400 Subject: [PATCH 032/501] chore: bind TreeAI SDK consumer releases --- deployment/treeai-component-inputs.json | 39 +++++++++++++++++++++++++ scripts/verify-platform.mjs | 5 ++++ 2 files changed, 44 insertions(+) diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 68103e84..0bb19b6d 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -5,6 +5,45 @@ "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc2", "contractReleaseSha256": "59b5fe6f0f766fa730943ae90301a3aac2e751fe6a528ea0e5271972941dc2ae", "imageManifestSha256": "09791390dd254e116f003ed9b6d99530423a97d7e7eb39cc00a68d88456df7c3", + "contracts": { + "genericSdk": { + "packageName": "@treeseed/treeai", + "version": "0.11.0-rc2", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/treeseed-treeai-0.11.0-rc2.tgz", + "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" + }, + "openapi": { + "inference": "3a00f1d91635d87d0aad2c6d329f495ff210f393bc9851570aa3e3ad1f5c1db4", + "training": "89dc70cecc85079853e4f177827d681e66f4b24b93ef17713051b99f07c2fe00", + "lab": "bccafa27b00a63b9fb22b132b850f9af6e77d44047dbc8966344088266d65898", + "qualification": "3f68b78845ec19c5de389663f1cb677ab4df0683ecd113c4f5780885a89370b7" + }, + "operationInventorySha256": "dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc", + "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", + "treeSeedSdk": { + "packageName": "@treeseed/sdk", + "version": "0.13.0-rc.48", + "sourceCommit": "b039b5f69abb81de57cb20c09348cc5a3e9c3040", + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.48.tgz", + "sha256": "8d97c3c4efc3661e6e447714506fec1d0479207e15259f1b60cc784a28e8675e" + }, + "api": { + "packageName": "@treeseed/api", + "version": "0.8.0-rc.49", + "sourceCommit": "330da2e218f8507904bd8036bcff98eba6958e7c", + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", + "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037", + "componentManifestSha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d", + "composeSha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" + }, + "cli": { + "packageName": "@treeseed/cli", + "version": "0.13.0-rc.29", + "sourceCommit": "ce3884ce817ca7552929d95929a1e545cfa8742b", + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", + "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" + } + }, "components": [ { "componentId": "ai-inference", diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index d73d9be1..2050e7ad 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -95,6 +95,11 @@ if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(provi const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc2' || !/^[a-f0-9]{40}$/u.test(treeAiInputs.sourceCommit)) fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc2 artifact.'); +if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); +if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.48' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '8d97c3c4efc3661e6e447714506fec1d0479207e15259f1b60cc784a28e8675e') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); +if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); +if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.29' || treeAiInputs.contracts.cli.sha256 !== '20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); for (const component of treeAiInputs.components) { if (!/^https:\/\/github\.com\/treeseed-ai\/ai\/releases\/download\//u.test(component.manifest?.url) From 0e0471367701c3df87c50d716490638877c92351 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 18:46:04 -0400 Subject: [PATCH 033/501] fix: close TreeAI profile topology --- deployment/profiles/ai-factory.json | 17 ++++++++++++++--- deployment/profiles/ai-inference.json | 2 +- deployment/profiles/ai-training.json | 2 +- scripts/verify-platform.mjs | 8 ++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json index 619e0524..6f7e4274 100644 --- a/deployment/profiles/ai-factory.json +++ b/deployment/profiles/ai-factory.json @@ -3,8 +3,19 @@ "id": "ai-factory", "default": false, "components": { - "ai-inference": { "enabled": true, "track": "development", "aliases": { "inference-api.http": "inference.ai.treeseed.localhost" } }, - "ai-training": { "enabled": true, "track": "development", "aliases": { "training-api.http": "training.ai.treeseed.localhost" } }, - "ai-lab": { "enabled": true, "track": "development", "aliases": { "open-webui.https": "chat.ai.treeseed.localhost", "hermes-dashboard.https": "hermes.ai.treeseed.localhost" } } + "ai-inference": { "enabled": true, "track": "development", "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" } }, + "ai-training": { "enabled": true, "track": "development", "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" } }, + "ai-lab": { + "enabled": true, + "track": "development", + "aliases": { + "ai-lab.open-webui.web": "chat.ai.treeseed.localhost", + "ai-lab.hermes-dashboard.web": "hermes.ai.treeseed.localhost" + }, + "connections": { + "inference": { "kind": "local", "componentId": "ai-inference", "serviceId": "inference-api", "endpointId": "inference" }, + "training": { "kind": "local", "componentId": "ai-training", "serviceId": "training-api", "endpointId": "control" } + } + } } } diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json index a5fb43e5..7f5a59d3 100644 --- a/deployment/profiles/ai-inference.json +++ b/deployment/profiles/ai-inference.json @@ -3,7 +3,7 @@ "id": "ai-inference", "default": false, "components": { - "ai-inference": { "enabled": true, "track": "development", "aliases": { "inference-api.http": "inference.ai.treeseed.localhost" } }, + "ai-inference": { "enabled": true, "track": "development", "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" } }, "ai-training": { "enabled": false }, "ai-lab": { "enabled": false } } diff --git a/deployment/profiles/ai-training.json b/deployment/profiles/ai-training.json index a791af06..9e7537f1 100644 --- a/deployment/profiles/ai-training.json +++ b/deployment/profiles/ai-training.json @@ -4,7 +4,7 @@ "default": false, "components": { "ai-inference": { "enabled": false }, - "ai-training": { "enabled": true, "track": "development", "aliases": { "training-api.http": "training.ai.treeseed.localhost" } }, + "ai-training": { "enabled": true, "track": "development", "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" } }, "ai-lab": { "enabled": false } } } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 2050e7ad..6bd47dd6 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -109,6 +109,14 @@ for (const profileId of ['ai-inference', 'ai-training', 'ai-factory', 'ai-connec const profile = JSON.parse(read(`deployment/profiles/${profileId}.json`)); if (profile.schemaVersion !== 'treeseed.platform-profile/v1' || profile.id !== profileId || profile.default !== false) fail(`TreeAI profile ${profileId} must remain explicit and opt-in.`); } +const inferenceProfile = JSON.parse(read('deployment/profiles/ai-inference.json')); +const trainingProfile = JSON.parse(read('deployment/profiles/ai-training.json')); +const factoryProfile = JSON.parse(read('deployment/profiles/ai-factory.json')); +if (inferenceProfile.components?.['ai-inference']?.aliases?.['ai-inference.inference-api.control'] !== 'inference.ai.treeseed.localhost') fail('Inference alias must use the SDK endpoint identity.'); +if (trainingProfile.components?.['ai-training']?.aliases?.['ai-training.training-api.control'] !== 'training.ai.treeseed.localhost') fail('Training alias must use the SDK endpoint identity.'); +if (factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.open-webui.web'] !== 'chat.ai.treeseed.localhost' || factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.hermes-dashboard.web'] !== 'hermes.ai.treeseed.localhost') fail('Lab aliases must use SDK endpoint identities.'); +const labConnections = factoryProfile.components?.['ai-lab']?.connections; +if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local', componentId: 'ai-inference', serviceId: 'inference-api', endpointId: 'inference' }) || JSON.stringify(labConnections?.training) !== JSON.stringify({ kind: 'local', componentId: 'ai-training', serviceId: 'training-api', endpointId: 'control' })) fail('AI lab must declare its required local inference and training connections.'); const stableIntegration = JSON.parse(read('deployment/integration-releases/stable.json')); const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); From 26294a79747a1ab1e7f893322f6fa12aa40ecde1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 19:18:52 -0400 Subject: [PATCH 034/501] fix: bind activatable TreeAI component release --- deployment/profiles/ai-connected.json | 2 +- deployment/treeai-component-inputs.json | 34 ++++++++++++------------- scripts/verify-platform.mjs | 11 +++++--- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/deployment/profiles/ai-connected.json b/deployment/profiles/ai-connected.json index e6b0ce3f..31a23ab7 100644 --- a/deployment/profiles/ai-connected.json +++ b/deployment/profiles/ai-connected.json @@ -7,7 +7,7 @@ "api": { "enabled": true, "configuration": { - "environment": { "TREESEED_TREEAI_NODES": "{\"local-ai\":{\"endpoints\":{\"inference\":\"http://inference-api:4770\",\"training\":\"http://training-api:4780\",\"lab\":\"http://lab-controller:4793\",\"qualification\":\"http://manager:4790\"},\"tokenEnvironment\":\"TREESEED_TREEAI_OPERATOR_TOKEN\"}}" }, + "environment": { "TREESEED_TREEAI_NODES": "{\"local-ai\":{\"endpoints\":{\"inference\":\"http://inference-api:4770\",\"training\":\"http://training-api:4780\",\"lab\":\"http://controller:8081\"},\"tokenEnvironment\":\"TREESEED_TREEAI_OPERATOR_TOKEN\"}}" }, "secretEnvironment": { "TREESEED_TREEAI_OPERATOR_TOKEN": "treeai-operator-token" } } } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 0bb19b6d..1adfebac 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc2", - "sourceCommit": "9770c99ba3a2f91ce916b48efafa45b0e971bbf0", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc2", - "contractReleaseSha256": "59b5fe6f0f766fa730943ae90301a3aac2e751fe6a528ea0e5271972941dc2ae", - "imageManifestSha256": "09791390dd254e116f003ed9b6d99530423a97d7e7eb39cc00a68d88456df7c3", + "release": "0.11.0-rc3", + "sourceCommit": "dd6450f4eba43b0886cfa631c60f7b9058c494b9", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc3", + "contractReleaseSha256": "c8fe2adf035c9a0bb84375e81a1652eb6a6ec1d8461d5b93af50ca3fb91ce0d8", + "imageManifestSha256": "01b6cd833a0b1b80da7ce60882b0202460e8adec6d4d0a4c94cb053525034dde", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc2", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/treeseed-treeai-0.11.0-rc2.tgz", + "version": "0.11.0-rc3", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/treeseed-treeai-0.11.0-rc3.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -22,10 +22,10 @@ "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", "treeSeedSdk": { "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.48", - "sourceCommit": "b039b5f69abb81de57cb20c09348cc5a3e9c3040", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.48.tgz", - "sha256": "8d97c3c4efc3661e6e447714506fec1d0479207e15259f1b60cc784a28e8675e" + "version": "0.13.0-rc.49", + "sourceCommit": "c57d2f0bcbdda0459e3930b34643a8a5d31df9cb", + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.49.tgz", + "sha256": "e71fa1444d442605fc1c79a14ab26887b4e71745b01de76c07611bf922dcabca" }, "api": { "packageName": "@treeseed/api", @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-inference-component-release.json", "sha256": "59f9bae69f7e99eb1dda9dfd2aa9cf95da0b28bb5e75241c0edbc8452028fe5a" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-inference-compose.yml", "sha256": "2e923383af24b0842519cc49daefe6825b959f8948ca1f5f962cbf3031515912" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-inference-component-release.json", "sha256": "738cf0935eab7c009bacec575db3f6c31b482efba5603ea4f5c7ae8aa4030b2c" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-inference-compose.yml", "sha256": "40858a577ccfdb6db6811aaa95014d3c9d17fa7bea17dfe601edd23b3cb13a9f" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-training-component-release.json", "sha256": "21f34dcf8e055da96e09b8d492ea399899b084ef82e3a2af20dbee7e351426cf" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-training-compose.yml", "sha256": "b44bff124de06782163573d92c8195378070af9d240dad83e041d82411944a88" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-training-component-release.json", "sha256": "a731e93c9625496a76984a303a713d15ac3c2d9830f1e6b67a8ef848b46e1267" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-training-compose.yml", "sha256": "3844e417fe1c731f158bd92094735e5f2c5f610c8b2bc2dd905202bb6ab718d8" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-lab-component-release.json", "sha256": "123583a503b64232edc91778e1f818f1495c60b485a7da592a1013ad16a983bd" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc2/ai-lab-compose.yml", "sha256": "48b4e9b7430a0820a31dc8e75a855e7b1b05239b0341abc1ea4a15fab632cbed" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-lab-component-release.json", "sha256": "c8b21a914981f4d80c299a137c989eaf33955cdac3b37133ebb8129ed486acaf" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-lab-compose.yml", "sha256": "f525ea891dd831b4517ef82ba2dd9ee49fa48fbef01beaab1185757e942d5b91" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 6bd47dd6..fb1b8f5d 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,10 +94,10 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc2' || !/^[a-f0-9]{40}$/u.test(treeAiInputs.sourceCommit)) fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc2 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc3' || treeAiInputs.sourceCommit !== 'dd6450f4eba43b0886cfa631c60f7b9058c494b9') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc3 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.48' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '8d97c3c4efc3661e6e447714506fec1d0479207e15259f1b60cc784a28e8675e') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); +if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.49' || treeAiInputs.contracts.treeSeedSdk.sha256 !== 'e71fa1444d442605fc1c79a14ab26887b4e71745b01de76c07611bf922dcabca') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.29' || treeAiInputs.contracts.cli.sha256 !== '20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); @@ -117,6 +117,11 @@ if (trainingProfile.components?.['ai-training']?.aliases?.['ai-training.training if (factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.open-webui.web'] !== 'chat.ai.treeseed.localhost' || factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.hermes-dashboard.web'] !== 'hermes.ai.treeseed.localhost') fail('Lab aliases must use SDK endpoint identities.'); const labConnections = factoryProfile.components?.['ai-lab']?.connections; if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local', componentId: 'ai-inference', serviceId: 'inference-api', endpointId: 'inference' }) || JSON.stringify(labConnections?.training) !== JSON.stringify({ kind: 'local', componentId: 'ai-training', serviceId: 'training-api', endpointId: 'control' })) fail('AI lab must declare its required local inference and training connections.'); +const connectedProfile = JSON.parse(read('deployment/profiles/ai-connected.json')); +const treeAiNodes = JSON.parse(connectedProfile.components?.api?.configuration?.environment?.TREESEED_TREEAI_NODES ?? '{}'); +const treeAiEndpoints = treeAiNodes['local-ai']?.endpoints; +if (treeAiEndpoints?.lab !== 'http://controller:8081') fail('Connected AI must address the released lab controller service and port.'); +if ('qualification' in (treeAiEndpoints ?? {})) fail('Connected AI must not advertise the retired TreeAI host manager as a qualification endpoint.'); const stableIntegration = JSON.parse(read('deployment/integration-releases/stable.json')); const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); From b7475626a452264d9f05261a1d1371452e06cf4f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 19:56:55 -0400 Subject: [PATCH 035/501] fix: bind manager-owned TreeAI runtime inputs --- deployment/profiles/ai-factory.json | 44 +++++++++++++++++++++++-- deployment/profiles/ai-inference.json | 16 ++++++++- deployment/profiles/ai-training.json | 17 +++++++++- deployment/treeai-component-inputs.json | 34 +++++++++---------- scripts/verify-platform.mjs | 34 +++++++++++++++++-- 5 files changed, 120 insertions(+), 25 deletions(-) diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json index 6f7e4274..44531a75 100644 --- a/deployment/profiles/ai-factory.json +++ b/deployment/profiles/ai-factory.json @@ -3,8 +3,26 @@ "id": "ai-factory", "default": false, "components": { - "ai-inference": { "enabled": true, "track": "development", "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" } }, - "ai-training": { "enabled": true, "track": "development", "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" } }, + "ai-inference": { + "enabled": true, + "track": "development", + "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, + "configuration": { "secretEnvironment": { + "INFERENCE_DATABASE_URL": "ai-inference-database-url", + "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", + "AI_API_KEYS": "ai-inference-api-keys" + } } + }, + "ai-training": { + "enabled": true, + "track": "development", + "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, + "configuration": { "secretEnvironment": { + "TRAINING_DATABASE_URL": "ai-training-database-url", + "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", + "AI_API_KEYS": "ai-training-api-keys" + } } + }, "ai-lab": { "enabled": true, "track": "development", @@ -15,7 +33,27 @@ "connections": { "inference": { "kind": "local", "componentId": "ai-inference", "serviceId": "inference-api", "endpointId": "inference" }, "training": { "kind": "local", "componentId": "ai-training", "serviceId": "training-api", "endpointId": "control" } - } + }, + "configuration": { "secretEnvironment": { "AI_LAB_API_KEYS": "ai-lab-api-keys" } } } + }, + "secrets": { + "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, + "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, + "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, + "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, + "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, + "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, + "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" }, + "ai-lab-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-api-keys" }, + "training-source": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-source" }, + "factory-control-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-control-key" }, + "factory-inference-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-inference-key" }, + "factory-training-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-training-key" }, + "hermes-api-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-api-key" }, + "hermes-password-hash": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-password-hash" }, + "hermes-session-secret": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-session-secret" }, + "training-ingest-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-ingest-key" }, + "lab-library-action-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-lab-library-action-key" } } } diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json index 7f5a59d3..c1ba6d20 100644 --- a/deployment/profiles/ai-inference.json +++ b/deployment/profiles/ai-inference.json @@ -3,8 +3,22 @@ "id": "ai-inference", "default": false, "components": { - "ai-inference": { "enabled": true, "track": "development", "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" } }, + "ai-inference": { + "enabled": true, + "track": "development", + "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, + "configuration": { "secretEnvironment": { + "INFERENCE_DATABASE_URL": "ai-inference-database-url", + "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", + "AI_API_KEYS": "ai-inference-api-keys" + } } + }, "ai-training": { "enabled": false }, "ai-lab": { "enabled": false } + }, + "secrets": { + "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, + "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, + "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" } } } diff --git a/deployment/profiles/ai-training.json b/deployment/profiles/ai-training.json index 9e7537f1..08594c37 100644 --- a/deployment/profiles/ai-training.json +++ b/deployment/profiles/ai-training.json @@ -4,7 +4,22 @@ "default": false, "components": { "ai-inference": { "enabled": false }, - "ai-training": { "enabled": true, "track": "development", "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" } }, + "ai-training": { + "enabled": true, + "track": "development", + "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, + "configuration": { "secretEnvironment": { + "TRAINING_DATABASE_URL": "ai-training-database-url", + "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", + "AI_API_KEYS": "ai-training-api-keys" + } } + }, "ai-lab": { "enabled": false } + }, + "secrets": { + "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, + "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, + "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, + "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" } } } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 1adfebac..a24d32d3 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc3", - "sourceCommit": "dd6450f4eba43b0886cfa631c60f7b9058c494b9", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc3", - "contractReleaseSha256": "c8fe2adf035c9a0bb84375e81a1652eb6a6ec1d8461d5b93af50ca3fb91ce0d8", - "imageManifestSha256": "01b6cd833a0b1b80da7ce60882b0202460e8adec6d4d0a4c94cb053525034dde", + "release": "0.11.0-rc4", + "sourceCommit": "d5ea430d4f297a44f002f12e6b6daa53b21ad66a", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc4", + "contractReleaseSha256": "1a1f2592fd350767511e695d4680dded3ae2876a7e8262e3896bb3c531e675c7", + "imageManifestSha256": "d03971dd500481ebed164fcf349afe781042373daf9c3773370f9f09d2b5bef5", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc3", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/treeseed-treeai-0.11.0-rc3.tgz", + "version": "0.11.0-rc4", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/treeseed-treeai-0.11.0-rc4.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -22,10 +22,10 @@ "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", "treeSeedSdk": { "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.49", - "sourceCommit": "c57d2f0bcbdda0459e3930b34643a8a5d31df9cb", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.49.tgz", - "sha256": "e71fa1444d442605fc1c79a14ab26887b4e71745b01de76c07611bf922dcabca" + "version": "0.13.0-rc.51", + "sourceCommit": "f22532e8cb552d548777f9f70dfdcfe5e3969127", + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", + "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" }, "api": { "packageName": "@treeseed/api", @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-inference-component-release.json", "sha256": "738cf0935eab7c009bacec575db3f6c31b482efba5603ea4f5c7ae8aa4030b2c" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-inference-compose.yml", "sha256": "40858a577ccfdb6db6811aaa95014d3c9d17fa7bea17dfe601edd23b3cb13a9f" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-component-release.json", "sha256": "8021c7e408e0c9233758e912465f3c41a11bb6979bafdadd700a330bff142fab" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-compose.yml", "sha256": "23b3098dce0704fc2290f876a2ea21d2fec37e6bdf73df4ee23a8aebfeb1c5bd" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-training-component-release.json", "sha256": "a731e93c9625496a76984a303a713d15ac3c2d9830f1e6b67a8ef848b46e1267" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-training-compose.yml", "sha256": "3844e417fe1c731f158bd92094735e5f2c5f610c8b2bc2dd905202bb6ab718d8" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-lab-component-release.json", "sha256": "c8b21a914981f4d80c299a137c989eaf33955cdac3b37133ebb8129ed486acaf" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc3/ai-lab-compose.yml", "sha256": "f525ea891dd831b4517ef82ba2dd9ee49fa48fbef01beaab1185757e942d5b91" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index fb1b8f5d..0a322b2f 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,10 +94,10 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc3' || treeAiInputs.sourceCommit !== 'dd6450f4eba43b0886cfa631c60f7b9058c494b9') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc3 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc4' || treeAiInputs.sourceCommit !== 'd5ea430d4f297a44f002f12e6b6daa53b21ad66a') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc4 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.49' || treeAiInputs.contracts.treeSeedSdk.sha256 !== 'e71fa1444d442605fc1c79a14ab26887b4e71745b01de76c07611bf922dcabca') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); +if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.51' || treeAiInputs.contracts.treeSeedSdk.sha256 !== 'b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.29' || treeAiInputs.contracts.cli.sha256 !== '20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); @@ -117,6 +117,34 @@ if (trainingProfile.components?.['ai-training']?.aliases?.['ai-training.training if (factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.open-webui.web'] !== 'chat.ai.treeseed.localhost' || factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.hermes-dashboard.web'] !== 'hermes.ai.treeseed.localhost') fail('Lab aliases must use SDK endpoint identities.'); const labConnections = factoryProfile.components?.['ai-lab']?.connections; if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local', componentId: 'ai-inference', serviceId: 'inference-api', endpointId: 'inference' }) || JSON.stringify(labConnections?.training) !== JSON.stringify({ kind: 'local', componentId: 'ai-training', serviceId: 'training-api', endpointId: 'control' })) fail('AI lab must declare its required local inference and training connections.'); +const requiredInputCustody = { + 'ai-inference': { + environment: { INFERENCE_DATABASE_URL: 'ai-inference-database-url', INFERENCE_POSTGRES_PASSWORD: 'ai-inference-postgres-password', AI_API_KEYS: 'ai-inference-api-keys' }, + secrets: { 'ai-inference-database-url': '/etc/treeseed/credentials/ai-inference-database-url', 'ai-inference-postgres-password': '/etc/treeseed/credentials/ai-inference-postgres-password', 'ai-inference-api-keys': '/etc/treeseed/credentials/ai-inference-api-keys' }, + }, + 'ai-training': { + environment: { TRAINING_DATABASE_URL: 'ai-training-database-url', TRAINING_POSTGRES_PASSWORD: 'ai-training-postgres-password', AI_API_KEYS: 'ai-training-api-keys' }, + secrets: { 'ai-training-database-url': '/etc/treeseed/credentials/ai-training-database-url', 'ai-training-postgres-password': '/etc/treeseed/credentials/ai-training-postgres-password', 'ai-training-api-keys': '/etc/treeseed/credentials/ai-training-api-keys', 'artifact-signing-key': '/etc/treeseed/credentials/ai-artifact-signing-key' }, + }, +}; +function verifyInputCustody(profile, componentId) { + const expected = requiredInputCustody[componentId]; + if (JSON.stringify(profile.components?.[componentId]?.configuration?.secretEnvironment) !== JSON.stringify(expected.environment)) fail(`${profile.id} does not bind the complete ${componentId} secret environment.`); + for (const [id, reference] of Object.entries(expected.secrets)) if (profile.secrets?.[id]?.provider !== 'file' || profile.secrets[id].reference !== reference) fail(`${profile.id} does not bind ${id} to its declared custody path.`); +} +verifyInputCustody(inferenceProfile, 'ai-inference'); +verifyInputCustody(trainingProfile, 'ai-training'); +verifyInputCustody(factoryProfile, 'ai-inference'); +verifyInputCustody(factoryProfile, 'ai-training'); +if (JSON.stringify(factoryProfile.components?.['ai-lab']?.configuration?.secretEnvironment) !== JSON.stringify({ AI_LAB_API_KEYS: 'ai-lab-api-keys' })) fail('AI factory does not bind the lab API credential environment.'); +const labSecretPaths = { + 'ai-lab-api-keys': '/etc/treeseed/credentials/ai-lab-api-keys', 'training-source': '/etc/treeseed/credentials/ai-lab-training-source', 'factory-control-key': '/etc/treeseed/credentials/ai-lab-factory-control-key', + 'factory-inference-key': '/etc/treeseed/credentials/ai-lab-factory-inference-key', 'factory-training-key': '/etc/treeseed/credentials/ai-lab-factory-training-key', 'hermes-api-key': '/etc/treeseed/credentials/ai-lab-hermes-api-key', + 'hermes-password-hash': '/etc/treeseed/credentials/ai-lab-hermes-password-hash', 'hermes-session-secret': '/etc/treeseed/credentials/ai-lab-hermes-session-secret', 'training-ingest-key': '/etc/treeseed/credentials/ai-lab-training-ingest-key', + 'lab-library-action-key': '/etc/treeseed/credentials/ai-lab-lab-library-action-key', +}; +for (const [id, reference] of Object.entries(labSecretPaths)) if (factoryProfile.secrets?.[id]?.provider !== 'file' || factoryProfile.secrets[id].reference !== reference) fail(`AI factory does not bind ${id} to the released lab custody path.`); +if (factoryProfile.components?.['ai-lab']?.configuration?.environment?.RUNTIME_GID !== undefined) fail('Platform must leave RUNTIME_GID under manager-derived custody.'); const connectedProfile = JSON.parse(read('deployment/profiles/ai-connected.json')); const treeAiNodes = JSON.parse(connectedProfile.components?.api?.configuration?.environment?.TREESEED_TREEAI_NODES ?? '{}'); const treeAiEndpoints = treeAiNodes['local-ai']?.endpoints; From c227605c69d3716fa2b83d4d94f803b780f0399d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 21:11:20 -0400 Subject: [PATCH 036/501] chore: compose development generation 74 --- .../integration-releases/development.json | 39 ++++++++++--------- deployment/integration-releases/stable.json | 4 +- scripts/verify-platform.mjs | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 99857c6b..01ee281c 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,30 +1,33 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc103", - "generation": 73, + "release": "0.1.0~rc104", + "generation": 74, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "89ec66a95f57c45d9fc712988ef2b29447f25dba", "tag": "0.1.0-rc.103" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "575b0510409f75196c74cf93f7f7c4fa6a7b31e4", "tag": "0.1.0-rc.104" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.45.tgz", "sha256": "26c953c8e38779b67f8084f876dcf4f47cd590bc3e8246731e293e9ac9867c1f" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.45", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/treeseed-api-0.8.0-rc.45.tgz", "sha256": "9d04ad55dc5031d2420a207e46f36f59bfbe24fd4ccebfb917dd658c7842016e" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.6.tgz", "sha256": "604861d91c35f7ed34c1787383aa67d4e5ea4ef59a3304b6ee8da23ad71da450" } }, - { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.4", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.4.tgz", "sha256": "d12b4bfc89c7784bd7e7db2d672f7e5ac065986a01663fb910c3790dee7c2564" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.17.tgz", "sha256": "b392a99ba9be3cb734a1736ec4f1fae7ecee667281ed896c7af9fea8c9f31dbe" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.10", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.10/treeseed-reviewer-0.1.0-rc.10.tgz", "sha256": "f2bd9f470a93fd474d21f4ea211614cc326a5af3ae9a0cfc7c7d799e856f48f9" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.18", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.18.tgz", "sha256": "a64afc443c89bc0864b721320740481643f103d8bfd2c95567a74e9c5b0727ac" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.11", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.11/treeseed-reviewer-0.1.0-rc.11.tgz", "sha256": "6f774e8519463cdff4dd79a37365b8e5ade0130aede2524b0d53f5802f591fc8" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.27", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.27.tgz", "sha256": "ac126921e0b399ba7d2efbc7e61533b537490b7c2e867f017f90fc82621f9256" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc45-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/component-release.json", "sha256": "c09d593489ba42676f602094dd12954ec8695994298d913700cb37b43278cb4b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.45/compose.yml", "sha256": "83849acf16cfbbfb461b636a8932dd4cd610a5e64ed91cd5bd882c5a51fc7553" } }] }, - { "componentId": "admin", "release": "0.12.59~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.17/component-release.json", "sha256": "2a7776f203f57d50f6e9c1e596dbaf5e903d486046ab1d1264f309264c29354c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.17/compose.yml", "sha256": "a58a35bf63771987d36c069dad7165abbc43bc56467ed5c783ef3f79cd574615" } }] }, - { "componentId": "agent", "release": "0.13.0~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/component-release.json", "sha256": "9af9dcff181e0e1146920e999d29440040e24ba8f1c1df72a572ac1995fe0f5b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.24/compose.yml", "sha256": "c265e73fdede0687b5be2deee4711f85f4ceb21f1d09140f07af1f9151cc774d" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/component-release.json", "sha256": "6a4a9d91c4ced612ac4a8c09f9d53e82128e298819b922efe459cde08a11a8cf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.9/compose.yml", "sha256": "f2fb2013ff2170b299d84c8c2701fc32c0542c5dd4cc5476af322cc75cef8054" } }] }, - { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] } + { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, + { "componentId": "admin", "release": "0.12.59~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.18/component-release.json", "sha256": "775fe0a417e7ebb11cc0d683bd74b4cef93a4a9b993f748982f1338d488fd47c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.18/compose.yml", "sha256": "0a0ecb0a27ee7a822068e029eaaf5632b830d3ec844d44735c1d72e7526b9947" } }] }, + { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, + { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, + { "componentId": "ai-inference", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-component-release.json", "sha256": "8021c7e408e0c9233758e912465f3c41a11bb6979bafdadd700a330bff142fab" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-compose.yml", "sha256": "23b3098dce0704fc2290f876a2ea21d2fec37e6bdf73df4ee23a8aebfeb1c5bd" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-27T20:03:00.000Z" + "createdAt": "2026-08-28T01:10:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 821af8f2..748432c2 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "311d02b3cf6cb3b6ff497a6a3367f89a63b9fc6b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "89ec66a95f57c45d9fc712988ef2b29447f25dba", "tag": "0.1.0-rc.103" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "575b0510409f75196c74cf93f7f7c4fa6a7b31e4", "tag": "0.1.0-rc.104" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 0a322b2f..c95d085d 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -157,7 +157,7 @@ if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || sta if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); if (developmentIntegration.platform?.commit !== stableIntegration.platform?.commit || developmentIntegration.deployment?.commit !== stableIntegration.deployment?.commit) fail('Stable and development locks must identify the same reviewed Platform and Deployment sources.'); if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'playwright-core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); -if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, and Lab component set.'); +if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'ai-inference', 'ai-lab', 'ai-training', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, Lab, and TreeAI component set.'); for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); for (const component of developmentIntegration.components ?? []) { if (!/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || component.files?.some(({ artifact }) => !/^[a-f0-9]{64}$/u.test(artifact?.sha256 ?? ''))) fail(`Component ${component.componentId} is not fully digest locked.`); From 86dcad99ef71aea7dc28b0dd5a4bbc08a2d6df0c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 21:54:01 -0400 Subject: [PATCH 037/501] chore: compose Deployment rc105 generation 75 --- deployment/integration-releases/development.json | 8 ++++---- deployment/integration-releases/stable.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 01ee281c..378a59a3 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc104", - "generation": 74, + "release": "0.1.0~rc105", + "generation": 75, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "575b0510409f75196c74cf93f7f7c4fa6a7b31e4", "tag": "0.1.0-rc.104" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d5bc4934af03b4858103944974c3f875ec297c64", "tag": "0.1.0-rc.105" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T01:10:00.000Z" + "createdAt": "2026-08-28T01:53:40.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 748432c2..3c802bdb 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -5,7 +5,7 @@ "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "575b0510409f75196c74cf93f7f7c4fa6a7b31e4", "tag": "0.1.0-rc.104" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d5bc4934af03b4858103944974c3f875ec297c64", "tag": "0.1.0-rc.105" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, From 48c830da0c11de85bdb4e6134e2983dc4e1ddc91 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 22:33:42 -0400 Subject: [PATCH 038/501] fix(guarantees): retain profile-scoped evidence --- scripts/run-composition-guarantees.mjs | 26 +++++++++++++++------- scripts/test-composition-guarantee-run.mjs | 5 ++++- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs index 696d3519..8cf895c5 100644 --- a/scripts/run-composition-guarantees.mjs +++ b/scripts/run-composition-guarantees.mjs @@ -63,19 +63,28 @@ function parseReport(stdout, definition) { return report; } -function verifierArgs({ adminPackageRoot, apiOrigin, mailpitOrigin, adminOrigin } = {}) { +function verifierCheck(report, caseId) { + const exact = report?.checks?.find((candidate) => candidate.id === caseId); + if (exact) return exact; + const scoped = report?.checks?.filter((candidate) => candidate.id.endsWith(`:${caseId}`)) ?? []; + return scoped.length === 1 ? scoped[0] : undefined; +} + +function verifierArgs({ adminPackageRoot, apiOrigin, mailpitOrigin, adminOrigin, runId, evidenceRoot } = {}) { const args = [ '--api-origin', apiOrigin ?? option('api-origin', 'http://api:3000'), '--mailpit-origin', mailpitOrigin ?? option('mailpit-origin', 'http://mailpit:8025'), '--admin-origin', adminOrigin ?? option('admin-origin', 'https://admin.treeseed.localhost'), ]; + if (runId) args.push('--run-id', runId); + if (evidenceRoot) args.push('--evidence-root', evidenceRoot); for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); if (adminPackageRoot) args.push('--admin-package-root', adminPackageRoot); args.push('--device-profile', option('device', 'desktop_chromium')); return args; } -async function executeLocal(definition, packageRoot, roots) { +async function executeLocal(definition, packageRoot, roots, correlatedRunId, evidenceRoot) { const entrypoint = resolve(packageRoot, definition.entrypoint); if (!entrypoint.startsWith(`${packageRoot}/`) || !existsSync(entrypoint)) throw new Error(`Missing safe entrypoint ${definition.entrypoint}.`); if (definition.exportName) { @@ -84,7 +93,7 @@ async function executeLocal(definition, packageRoot, roots) { const report = await module[definition.exportName](); return { report: parseReport(JSON.stringify(report), definition), execution: { mode: 'local-export' } }; } - const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs({ adminPackageRoot: roots.get('@treeseed/admin') })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); + const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs({ adminPackageRoot: roots.get('@treeseed/admin'), runId: correlatedRunId, evidenceRoot })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); const report = parseReport(redact(child.stdout), definition); if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); return { report, execution: { mode: 'local-process', exitCode: child.status } }; @@ -111,7 +120,7 @@ function executeInContainer(definition, container, nodeModules, runId) { ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin`, apiOrigin: option('container-api-origin', 'http://api:3000'), mailpitOrigin: option('container-mailpit-origin', 'http://mailpit:8025'), - adminOrigin: option('container-admin-origin', 'https://admin.treeseed.localhost') })], { + adminOrigin: option('container-admin-origin', 'https://admin.treeseed.localhost'), runId })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, }); const report = parseReport(redact(child.stdout), definition); @@ -156,20 +165,21 @@ try { for (const verifier of plan.verifiers) { const definition = verifier.definition; const key = JSON.stringify([definition.kind, definition.ownerPackage, definition.artifactId, definition.entrypoint, definition.exportName]); + const executionKey = createHash('sha256').update(key).digest('hex').slice(0, 16); if (!executions.has(key)) { try { if (definition.kind !== 'artifact') throw new Error(`Catalog operation execution is not configured for ${verifier.ref}.`); const container = containers.get(definition.ownerPackage); const executed = container ? executeInContainer(definition, container, nodeModules, runId) - : await executeLocal(definition, roots.get(definition.ownerPackage), roots); + : await executeLocal(definition, roots.get(definition.ownerPackage), roots, runId, resolve(stagingRoot, 'evidence', `${executionKey}-assets`)); executions.set(key, executed); } catch (error) { executions.set(key, { error: redact(error instanceof Error ? error.message : error), execution: { mode: 'failed' } }); } } const executed = executions.get(key); - verifier.executionKey = createHash('sha256').update(key).digest('hex').slice(0, 16); + verifier.executionKey = executionKey; verifier.execution = executed.execution; verifier.error = executed.error; verifier.report = executed.report; @@ -180,8 +190,8 @@ try { const results = plan.results.map((entry) => { const checks = entry.verifierRefs.map((ref) => { const verifier = verifierByRef.get(ref), definition = verifier?.definition; - const check = verifier?.report?.checks?.find((candidate) => candidate.id === definition?.caseId); - return { ref, caseId: definition?.caseId, status: check?.status ?? 'blocked', error: verifier?.error ?? check?.error }; + const check = verifierCheck(verifier?.report, definition?.caseId); + return { ref, caseId: definition?.caseId, evidenceCheckId: check?.id, status: check?.status ?? 'blocked', error: verifier?.error ?? check?.error }; }); const status = checks.some((check) => check.status === 'failed') ? 'failed' : checks.length > 0 && checks.every((check) => check.status === 'passed') ? 'passed' : 'blocked'; diff --git a/scripts/test-composition-guarantee-run.mjs b/scripts/test-composition-guarantee-run.mjs index 5b8f7050..0525994d 100644 --- a/scripts/test-composition-guarantee-run.mjs +++ b/scripts/test-composition-guarantee-run.mjs @@ -12,7 +12,7 @@ const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-test-')) try { const packageRoot = resolve(temporary, 'source/package'); mkdirSync(resolve(packageRoot, 'dist/standards'), { recursive: true }); - writeFileSync(resolve(packageRoot, 'dist/verifier.js'), `#!/usr/bin/env node\nprocess.stdout.write(JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',verifierId:'fixture',startedAt:new Date().toISOString(),completedAt:new Date().toISOString(),ok:true,checks:[{id:'fixture.case',status:'passed',durationMs:1}]}));\n`); + writeFileSync(resolve(packageRoot, 'dist/verifier.js'), `#!/usr/bin/env node\nconst fs=require('node:fs'); const value=name=>{const index=process.argv.indexOf('--'+name); return process.argv[index+1]}; const evidenceRoot=value('evidence-root'); fs.mkdirSync(evidenceRoot,{recursive:true}); fs.writeFileSync(evidenceRoot+'/marker.json',JSON.stringify({runId:value('run-id')})); process.stdout.write(JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',verifierId:'fixture',startedAt:new Date().toISOString(),completedAt:new Date().toISOString(),ok:true,checks:[{id:'desktop_chromium:fixture.case',status:'passed',durationMs:1}]}));\n`); writeFileSync(resolve(packageRoot, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { @@ -42,6 +42,9 @@ try { assert.equal(report.environment, 'local'); assert.equal(report.results[0].steps[0].status, 'passed'); assert.equal(report.results[0].checks[0].caseId, 'fixture.case'); + assert.equal(report.results[0].checks[0].evidenceCheckId, 'desktop_chromium:fixture.case'); + const executionKey = report.verifiers[0].executionKey; + assert.deepEqual(JSON.parse(readFileSync(resolve(summary.runRoot, 'evidence', `${executionKey}-assets/marker.json`), 'utf8')), { runId: 'fixture-run' }); assert.equal(report.payloads[0].artifact.sha256, digest); process.stdout.write(`${JSON.stringify({ ok: true, cases: 1 })}\n`); } finally { From 1b906b5787e7c9e4f85da47cdcbcc8b8e184bedf Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 22:45:52 -0400 Subject: [PATCH 039/501] chore: compose development generation 76 --- deployment/integration-releases/development.json | 16 ++++++++-------- deployment/integration-releases/stable.json | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 378a59a3..3c493da6 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,18 +1,18 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc105", - "generation": 75, + "release": "0.1.0~rc106", + "generation": 76, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "d5bc4934af03b4858103944974c3f875ec297c64", "tag": "0.1.0-rc.105" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "411dbd8ea8a39815b832b5f14532edbcdb26dd19" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3661c6cd86feac700750da531f8d38a564b734d7", "tag": "0.1.0-rc.106" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.18", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.18.tgz", "sha256": "a64afc443c89bc0864b721320740481643f103d8bfd2c95567a74e9c5b0727ac" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.11", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.11/treeseed-reviewer-0.1.0-rc.11.tgz", "sha256": "6f774e8519463cdff4dd79a37365b8e5ade0130aede2524b0d53f5802f591fc8" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.19", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.19.tgz", "sha256": "361ed73b03ccd5af3568f3f5a6cb56559505487094b45f354367afaf8b9f914f" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.12", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.12/treeseed-reviewer-0.1.0-rc.12.tgz", "sha256": "4250d998b547a6a6f36a3819fbf67bf87ae744aba4110e4ad439e17cf60f3677" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" } }, @@ -21,7 +21,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.18/component-release.json", "sha256": "775fe0a417e7ebb11cc0d683bd74b4cef93a4a9b993f748982f1338d488fd47c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.18/compose.yml", "sha256": "0a0ecb0a27ee7a822068e029eaaf5632b830d3ec844d44735c1d72e7526b9947" } }] }, + { "componentId": "admin", "release": "0.12.59~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.19/component-release.json", "sha256": "bc205ddbf28ae621faf25c06694ecab14422cd2995eb79a921d968ced2067240" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.19/compose.yml", "sha256": "62c306cdb54a1b3398259a707f126ba4b142deb1468a67236bdf866f3ff019ee" } }] }, { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T01:53:40.000Z" + "createdAt": "2026-08-28T02:44:43.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 3c802bdb..738fab3f 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 29, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b7475626a452264d9f05261a1d1371452e06cf4f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "d5bc4934af03b4858103944974c3f875ec297c64", "tag": "0.1.0-rc.105" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "411dbd8ea8a39815b832b5f14532edbcdb26dd19" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3661c6cd86feac700750da531f8d38a564b734d7", "tag": "0.1.0-rc.106" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-25T20:35:53.000Z" + "createdAt": "2026-08-28T02:44:43.000Z" } From f5b5d57817802dda7ab35adbbe876ec2589e289c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 22:57:47 -0400 Subject: [PATCH 040/501] fix: advance stable base for generation 77 --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 3c493da6..ae680615 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc106", - "generation": 76, + "release": "0.1.0~rc107", + "generation": 77, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "411dbd8ea8a39815b832b5f14532edbcdb26dd19" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3661c6cd86feac700750da531f8d38a564b734d7", "tag": "0.1.0-rc.106" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f47495e4a2beab80eec9a6a40945628dfea46fd5" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9ad465334ea46c02f68b4292e2a3988c6c07a086", "tag": "0.1.0-rc.107" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T02:44:43.000Z" + "createdAt": "2026-08-28T02:57:24.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 738fab3f..7e495614 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 29, + "generation": 30, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "411dbd8ea8a39815b832b5f14532edbcdb26dd19" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3661c6cd86feac700750da531f8d38a564b734d7", "tag": "0.1.0-rc.106" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f47495e4a2beab80eec9a6a40945628dfea46fd5" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9ad465334ea46c02f68b4292e2a3988c6c07a086", "tag": "0.1.0-rc.107" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T02:44:43.000Z" + "createdAt": "2026-08-28T02:57:24.000Z" } From b27a03b6d727e9e537c26735ba95b501d02fce03 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 23:24:44 -0400 Subject: [PATCH 041/501] chore: compose development generation 78 --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index ae680615..da0ad9a3 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc107", - "generation": 77, + "release": "0.1.0~rc108", + "generation": 78, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f47495e4a2beab80eec9a6a40945628dfea46fd5" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9ad465334ea46c02f68b4292e2a3988c6c07a086", "tag": "0.1.0-rc.107" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "29cba0b18646495d64f1d40d84aaa3fccfb2576e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ccabd5574378635bd236d26caa2bc134f477bfa9", "tag": "0.1.0-rc.108" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.19", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.19.tgz", "sha256": "361ed73b03ccd5af3568f3f5a6cb56559505487094b45f354367afaf8b9f914f" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.20", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.20.tgz", "sha256": "0a89cc203473cbaf51cd2d24c6f6060678ef0b08eafb6133ef91b81e8768ab9b" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.12", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.12/treeseed-reviewer-0.1.0-rc.12.tgz", "sha256": "4250d998b547a6a6f36a3819fbf67bf87ae744aba4110e4ad439e17cf60f3677" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, @@ -21,7 +21,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.19/component-release.json", "sha256": "bc205ddbf28ae621faf25c06694ecab14422cd2995eb79a921d968ced2067240" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.19/compose.yml", "sha256": "62c306cdb54a1b3398259a707f126ba4b142deb1468a67236bdf866f3ff019ee" } }] }, + { "componentId": "admin", "release": "0.12.59~rc20-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.20/component-release.json", "sha256": "bb130cd9a763a954e31723799439f46b19790f78f8320ae1d2e98da04544798e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.20/compose.yml", "sha256": "9f684ac2932d5c325252841945b5c5c49507ebb167e662abfd141d4edf7d0126" } }] }, { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T02:57:24.000Z" + "createdAt": "2026-08-28T03:24:05.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 7e495614..08abb097 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 30, + "generation": 31, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f47495e4a2beab80eec9a6a40945628dfea46fd5" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9ad465334ea46c02f68b4292e2a3988c6c07a086", "tag": "0.1.0-rc.107" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "29cba0b18646495d64f1d40d84aaa3fccfb2576e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ccabd5574378635bd236d26caa2bc134f477bfa9", "tag": "0.1.0-rc.108" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T02:57:24.000Z" + "createdAt": "2026-08-28T03:24:05.000Z" } From 62ee421530b26c0aeed85e506b53cd3ec39a9b9c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 27 Aug 2026 23:58:12 -0400 Subject: [PATCH 042/501] release: prepare integration generation 79 --- deployment/integration-releases/development.json | 12 ++++++------ deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index da0ad9a3..970baeab 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,18 +1,18 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc108", - "generation": 78, + "release": "0.1.0~rc109", + "generation": 79, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "29cba0b18646495d64f1d40d84aaa3fccfb2576e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ccabd5574378635bd236d26caa2bc134f477bfa9", "tag": "0.1.0-rc.108" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ee7c179ac48493ac5861ade1bec86d6fc3b779e0" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "861b6049e662c12604f714cc6e375d4d53ad7222", "tag": "0.1.0-rc.109" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.20", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.20.tgz", "sha256": "0a89cc203473cbaf51cd2d24c6f6060678ef0b08eafb6133ef91b81e8768ab9b" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.12", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.12/treeseed-reviewer-0.1.0-rc.12.tgz", "sha256": "4250d998b547a6a6f36a3819fbf67bf87ae744aba4110e4ad439e17cf60f3677" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T03:24:05.000Z" + "createdAt": "2026-08-28T03:58:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 08abb097..51a5e755 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 31, + "generation": 32, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "29cba0b18646495d64f1d40d84aaa3fccfb2576e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ccabd5574378635bd236d26caa2bc134f477bfa9", "tag": "0.1.0-rc.108" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ee7c179ac48493ac5861ade1bec86d6fc3b779e0" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "861b6049e662c12604f714cc6e375d4d53ad7222", "tag": "0.1.0-rc.109" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T03:24:05.000Z" + "createdAt": "2026-08-28T03:58:00.000Z" } From c560df0b1d2d1cba1abd2026d445e8ada3696c37 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 00:13:05 -0400 Subject: [PATCH 043/501] chore(platform): prepare generation 80 completion --- .../integration-releases/development.json | 10 ++--- deployment/integration-releases/stable.json | 8 ++-- docs/agent-chat-readiness.md | 40 +++++++++++++++++++ 3 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 docs/agent-chat-readiness.md diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 970baeab..1b11892e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc109", - "generation": 79, + "release": "0.1.0~rc110", + "generation": 80, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ee7c179ac48493ac5861ade1bec86d6fc3b779e0" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "861b6049e662c12604f714cc6e375d4d53ad7222", "tag": "0.1.0-rc.109" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "50ff0b8aa313bf6d9f5c73175cb8770eb7c44c50" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "b3a1b2561ee0e67026a2d69f74ecc4c59a85aa55", "tag": "0.1.0-rc.110" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T03:58:00.000Z" + "createdAt": "2026-08-28T04:18:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 51a5e755..b0f351e2 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 32, + "generation": 33, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ee7c179ac48493ac5861ade1bec86d6fc3b779e0" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "861b6049e662c12604f714cc6e375d4d53ad7222", "tag": "0.1.0-rc.109" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "50ff0b8aa313bf6d9f5c73175cb8770eb7c44c50" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "b3a1b2561ee0e67026a2d69f74ecc4c59a85aa55", "tag": "0.1.0-rc.110" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T03:58:00.000Z" + "createdAt": "2026-08-28T04:18:00.000Z" } diff --git a/docs/agent-chat-readiness.md b/docs/agent-chat-readiness.md new file mode 100644 index 00000000..4850501f --- /dev/null +++ b/docs/agent-chat-readiness.md @@ -0,0 +1,40 @@ +# Authenticated agent-chat readiness + +This handoff records the platform boundary proven before agent-chat UI work begins. It does not add a chat route, placeholder, or new authority. + +## Browser identity and credential custody + +- Admin is an OAuth browser BFF. PKCE verifier and state are short-lived sealed HttpOnly cookies; access and rotating refresh tokens remain HttpOnly and are never exposed to browser JavaScript. +- API remains the issuer and owns credentials, authorization decisions, revocation, audit, and durable identity state. +- Browser mutations require same-origin CSRF protection and safe return paths. Session responses are `no-store`; logout revokes and clears both token classes. +- The generation-78 immutable Reviewer run proved registration, email confirmation, sign-in, consent, refresh, logout, password reset, account, and team guarantees across desktop, tablet, and mobile: 66 active guarantees with no failures or blocked cases. + +## User, team, project, and permission boundary + +- The current user and active team are resolved through catalog descriptors rather than handwritten route strings. +- Project access is subordinate to API-owned team membership and permission checks. A browser session does not grant access merely because an identifier is known. +- Mutations retain ETag/concurrency checks, signed confirmation for high-risk operations, last-owner protection, audit evidence, redaction, and the standard error envelope. +- Agent chat must carry current team and project context into every catalog operation and render forbidden, missing, or unavailable state truthfully. + +## Agent and communication addressing + +- Agent identity is the accepted project-scoped definition, not a UI label or provider process. Recipients resolve to frozen team, project, agent, and definition-revision identifiers before a source message is committed. +- Communication status, provider availability, invocation/operation state, and durable responses are read through SDK catalog descriptors. +- API admission and the assignment-scoped TreeDX facade remain authoritative. Admin must not proxy Reviewer evidence or broaden provider authority. + +## Workday, assignment, and terminal state + +- Monitoring composes catalogued agent, communication, provider, workday, assignment, usage, ledger, and operation reads. Unsupported data is unavailable, never a manufactured zero. +- A terminal communication must have durable response state and exact settlement. Acceptance requires no remaining assignment, lease, reservation, child process, temporary credential custody, usage, or accounting residue attributable to the test. +- Team/project authorization and response redaction apply to monitoring reads as they do to mutations. + +## Reviewer evidence boundary + +- Reviewer remains loopback-only and consumes immutable run evidence. The generation-78 run was independently discovered by Reviewer, annotated with a local note, and copied into a local workplan with its evidence manifest. +- Device profiles have distinct run identities; desktop evidence cannot satisfy tablet or mobile requirements. +- Transport diagnostics may include method, origin, pathname, and nested TLS/network cause. Query strings, bodies, credentials, and tokens are excluded. +- Admin displays a Reviewer handoff only when an explicit local capability URL is configured; it never hosts or remotely starts Reviewer. + +## First chat project gate + +The first authenticated chat implementation may build on these invariants, but it must separately prove: authorized recipient resolution, one committed source message, observable assignment/provider state, one durable response, exact settlement, browser-safe rendering, audit evidence, and zero residue. Planned MFA/provider linking and advanced Agent Lab projections remain outside this claim. From ccbe3c009f8914b4b1ae8440da22e6e211126f16 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 00:36:32 -0400 Subject: [PATCH 044/501] chore(platform): prepare recovery-hardened generation 81 --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 1b11892e..efe7ffbe 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc110", - "generation": 80, + "release": "0.1.0~rc111", + "generation": 81, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "50ff0b8aa313bf6d9f5c73175cb8770eb7c44c50" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "b3a1b2561ee0e67026a2d69f74ecc4c59a85aa55", "tag": "0.1.0-rc.110" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "84efee6dba1c18b931148332e73fc417331dddc7" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "e3fdb7ba1abe87783ec46bd38ff3f26a254a382e", "tag": "0.1.0-rc.111" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T04:18:00.000Z" + "createdAt": "2026-08-28T04:36:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index b0f351e2..420d8c8d 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 33, + "generation": 34, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "50ff0b8aa313bf6d9f5c73175cb8770eb7c44c50" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "b3a1b2561ee0e67026a2d69f74ecc4c59a85aa55", "tag": "0.1.0-rc.110" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "84efee6dba1c18b931148332e73fc417331dddc7" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "e3fdb7ba1abe87783ec46bd38ff3f26a254a382e", "tag": "0.1.0-rc.111" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T04:18:00.000Z" + "createdAt": "2026-08-28T04:36:00.000Z" } From de1839e5856946df1a8bb5b5c171da9a3e0eeebf Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 01:55:24 -0400 Subject: [PATCH 045/501] chore(platform): compose Admin repair generation 82 --- deployment/integration-releases/development.json | 14 +++++++------- deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index efe7ffbe..1757e3d0 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc111", - "generation": 81, + "release": "0.1.0~rc112", + "generation": 82, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "84efee6dba1c18b931148332e73fc417331dddc7" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "e3fdb7ba1abe87783ec46bd38ff3f26a254a382e", "tag": "0.1.0-rc.111" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da9f93f81ff58fe55354a28098ff8b059d6" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ec8bb3e778e4fa3138fdd117d4886feed2e7da4c", "tag": "0.1.0-rc.112" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.20", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.20.tgz", "sha256": "0a89cc203473cbaf51cd2d24c6f6060678ef0b08eafb6133ef91b81e8768ab9b" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.21", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.21.tgz", "sha256": "8aaf25bf24c034b0053108922913233a82653e63c3cd724adfe108806d07a95d" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, @@ -21,7 +21,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc20-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.20/component-release.json", "sha256": "bb130cd9a763a954e31723799439f46b19790f78f8320ae1d2e98da04544798e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.20/compose.yml", "sha256": "9f684ac2932d5c325252841945b5c5c49507ebb167e662abfd141d4edf7d0126" } }] }, + { "componentId": "admin", "release": "0.12.59~rc21-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.21/component-release.json", "sha256": "79b8ebf9dfe75eb78ca0233c40bd17184dddaf44649cc812a99626ae903a97e7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.21/compose.yml", "sha256": "8f877f8131a3e77f3852808e717fe128ed4ca2942e00a0b3e81ea993d2ba9371" } }] }, { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T04:36:00.000Z" + "createdAt": "2026-08-28T05:56:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 420d8c8d..692796ab 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 34, + "generation": 35, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "84efee6dba1c18b931148332e73fc417331dddc7" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "e3fdb7ba1abe87783ec46bd38ff3f26a254a382e", "tag": "0.1.0-rc.111" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da9f93f81ff58fe55354a28098ff8b059d6" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "ec8bb3e778e4fa3138fdd117d4886feed2e7da4c", "tag": "0.1.0-rc.112" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T04:36:00.000Z" + "createdAt": "2026-08-28T05:56:00.000Z" } From 1b9f0cf3c7aefaefb27f75f63c32afe89603d289 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 02:01:21 -0400 Subject: [PATCH 046/501] fix(platform): correct generation 83 custody refs --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 1757e3d0..fa4abe63 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc112", - "generation": 82, + "release": "0.1.0~rc113", + "generation": 83, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da9f93f81ff58fe55354a28098ff8b059d6" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ec8bb3e778e4fa3138fdd117d4886feed2e7da4c", "tag": "0.1.0-rc.112" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T05:56:00.000Z" + "createdAt": "2026-08-28T06:02:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 692796ab..6c182f24 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0", - "generation": 35, + "generation": 36, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da9f93f81ff58fe55354a28098ff8b059d6" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "ec8bb3e778e4fa3138fdd117d4886feed2e7da4c", "tag": "0.1.0-rc.112" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T05:56:00.000Z" + "createdAt": "2026-08-28T06:02:00.000Z" } From c1c87f179fb60d108a2c38a20262d2c794cbb9aa Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 02:45:49 -0400 Subject: [PATCH 047/501] chore: compose canonical branding generation 84 --- deployment/integration-releases/development.json | 16 ++++++++-------- deployment/integration-releases/stable.json | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index fa4abe63..400bff23 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc113", - "generation": 83, + "release": "0.1.0~rc114", + "generation": 84, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e77be5aca296d1b8ff36e50263d271f48eff0e20" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "32e6b1827532d596f09a2838af5a47eb871ab95f", "tag": "0.1.0-rc.114" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.9.tgz", "sha256": "22f6a081906307ceff1719cbee9d9979919d4744b49a19db905193a45edb13db" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.21", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.21.tgz", "sha256": "8aaf25bf24c034b0053108922913233a82653e63c3cd724adfe108806d07a95d" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, @@ -21,7 +21,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc21-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.21/component-release.json", "sha256": "79b8ebf9dfe75eb78ca0233c40bd17184dddaf44649cc812a99626ae903a97e7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.21/compose.yml", "sha256": "8f877f8131a3e77f3852808e717fe128ed4ca2942e00a0b3e81ea993d2ba9371" } }] }, + { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T06:02:00.000Z" + "createdAt": "2026-08-28T06:45:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 6c182f24..8e534ffb 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 36, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e77be5aca296d1b8ff36e50263d271f48eff0e20" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "32e6b1827532d596f09a2838af5a47eb871ab95f", "tag": "0.1.0-rc.114" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T06:02:00.000Z" + "createdAt": "2026-08-28T06:45:00.000Z" } From 52274f8fc75fd5ba21d6bb129808062f3f99f55e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 02:59:51 -0400 Subject: [PATCH 048/501] fix: preserve stable identity across development generations --- deployment/integration-releases/development.json | 10 +++++----- deployment/integration-releases/stable.json | 6 +++--- scripts/verify-platform.mjs | 5 ++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 400bff23..0f64ba78 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc114", - "generation": 84, + "release": "0.1.0~rc115", + "generation": 85, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e77be5aca296d1b8ff36e50263d271f48eff0e20" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "32e6b1827532d596f09a2838af5a47eb871ab95f", "tag": "0.1.0-rc.114" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "0f7806a85df7eee19cb22edeec3b690c49452d7e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a268ff6b8d4b6a55122a4c392078b660a0ecd529", "tag": "0.1.0-rc.115" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } ], - "createdAt": "2026-08-28T06:45:00.000Z" + "createdAt": "2026-08-28T07:03:00.000Z" } diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json index 8e534ffb..6c182f24 100644 --- a/deployment/integration-releases/stable.json +++ b/deployment/integration-releases/stable.json @@ -4,8 +4,8 @@ "generation": 36, "track": "stable", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e77be5aca296d1b8ff36e50263d271f48eff0e20" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "32e6b1827532d596f09a2838af5a47eb871ab95f", "tag": "0.1.0-rc.114" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, @@ -14,5 +14,5 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [], - "createdAt": "2026-08-28T06:45:00.000Z" + "createdAt": "2026-08-28T06:02:00.000Z" } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index c95d085d..0e83f7d0 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -155,7 +155,10 @@ const stableIntegration = JSON.parse(read('deployment/integration-releases/stabl const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); -if (developmentIntegration.platform?.commit !== stableIntegration.platform?.commit || developmentIntegration.deployment?.commit !== stableIntegration.deployment?.commit) fail('Stable and development locks must identify the same reviewed Platform and Deployment sources.'); +for (const integration of [stableIntegration, developmentIntegration]) { + if (!/^[a-f0-9]{40}$/u.test(integration.platform?.commit ?? '') || !/^[a-f0-9]{40}$/u.test(integration.deployment?.commit ?? '')) fail(`${integration.track} integration must identify exact reviewed Platform and Deployment commits.`); +} +if (developmentIntegration.generation <= stableIntegration.generation) fail('Development integration generation must advance beyond the immutable stable baseline.'); if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'playwright-core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'ai-inference', 'ai-lab', 'ai-training', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, Lab, and TreeAI component set.'); for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); From 7ab3869ddbaa9e17045273dac63134de2e70a23a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 03:56:08 -0400 Subject: [PATCH 049/501] docs: certify generation 85 agent chat readiness (#193) --- docs/agent-chat-readiness.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/agent-chat-readiness.md b/docs/agent-chat-readiness.md index 4850501f..cbee6964 100644 --- a/docs/agent-chat-readiness.md +++ b/docs/agent-chat-readiness.md @@ -7,7 +7,7 @@ This handoff records the platform boundary proven before agent-chat UI work begi - Admin is an OAuth browser BFF. PKCE verifier and state are short-lived sealed HttpOnly cookies; access and rotating refresh tokens remain HttpOnly and are never exposed to browser JavaScript. - API remains the issuer and owns credentials, authorization decisions, revocation, audit, and durable identity state. - Browser mutations require same-origin CSRF protection and safe return paths. Session responses are `no-store`; logout revokes and clears both token classes. -- The generation-78 immutable Reviewer run proved registration, email confirmation, sign-in, consent, refresh, logout, password reset, account, and team guarantees across desktop, tablet, and mobile: 66 active guarantees with no failures or blocked cases. +- The generation-85 immutable Reviewer runs proved registration, email confirmation, sign-in, consent, refresh, logout, password reset, account, and team guarantees across desktop, tablet, and mobile: 66 active guarantees with no failures or blocked cases. ## User, team, project, and permission boundary @@ -30,7 +30,7 @@ This handoff records the platform boundary proven before agent-chat UI work begi ## Reviewer evidence boundary -- Reviewer remains loopback-only and consumes immutable run evidence. The generation-78 run was independently discovered by Reviewer, annotated with a local note, and copied into a local workplan with its evidence manifest. +- Reviewer remains loopback-only and consumes immutable run evidence. The generation-85 desktop run was independently discovered by Reviewer `0.1.0-rc.13`, annotated with a local note, read back, and copied into local workplan `2026-08-28T07-37-04-870Z-generation-85-authenticated-platform-baseline` with its evidence manifest. - Device profiles have distinct run identities; desktop evidence cannot satisfy tablet or mobile requirements. - Transport diagnostics may include method, origin, pathname, and nested TLS/network cause. Query strings, bodies, credentials, and tokens are excluded. - Admin displays a Reviewer handoff only when an explicit local capability URL is configured; it never hosts or remotely starts Reviewer. @@ -38,3 +38,13 @@ This handoff records the platform boundary proven before agent-chat UI work begi ## First chat project gate The first authenticated chat implementation may build on these invariants, but it must separately prove: authorized recipient resolution, one committed source message, observable assignment/provider state, one durable response, exact settlement, browser-safe rendering, audit evidence, and zero residue. Planned MFA/provider linking and advanced Agent Lab projections remain outside this claim. + +## Generation 85 closeout certification + +- Exact composition: Platform generation 85 / Deployment `0.1.0-rc.115`, restored receipt `receipt-1787903649377`, catalog digest `sha256:270b7cb7af0608abe24971a1ab3d88bd2525f3dc3eb971f64e310e766e1f17b0`. +- Guarantee runs: `gen85-desktop-chromium-20260828-r3`, `gen85-tablet-chromium-20260828`, and `gen85-mobile-chromium-20260828`; each passed 22 of 22 active authentication, account, and team guarantees with a distinct evidence identity. +- Reviewer copied both browser and direct API evidence into the workplan manifest. Exact copied evidence SHA-256 values are `6e3f70b3418f8958e1d6594dd4174419ad26ab462502954066ce25e758f218e0` and `94cdfa92ec4d21df7240116214149e6376cb1178b166649c782c37918020e777`. +- Real communication monitoring used SDK project `0f9d94ba-ed45-4078-baf6-c85f97e0044d`, technical-writer assignment `assignment_WXj8uUgIIazqzLcYVksuGcMoz2AB-PT7`, and workday `workday-conversation-invocation-e991785bcad120935e791f4c46034d37-sdk`. Catalog reads proved provider `codex-local` available, assignment returned, lease released, six active/elapsed seconds, and a matching `task_completed_actual_settlement` ledger entry releasing 894 reserved seconds. Native usage remained an explicit empty object; it was not presented as zero. +- The exact generation-73 baseline was restored as receipt `receipt-1787903533155`; Admin, API, Agent, TreeDX, and Mailpit readiness all returned HTTP 200. Generation 85 was then restored, and two consecutive reconciliations retained `receipt-1787903649377`, proving no-op behavior. +- Historical APT payload drift encountered during rollback is tracked in [Deployment #233](https://github.com/treeseed-ai/deployment/issues/233). Recovery used the immutable Deployment rc103 GitHub release asset, whose SHA-256 matched its release custody record. +- Final closeout state has no development session, Reviewer server, forwarding process, test account, assignment lease, or unrevoked test token. Development updates are resumed. From feafba10ef0f7bb985e3fd56637ec045765c003f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 10:17:46 -0400 Subject: [PATCH 050/501] chore(platform): compose TreeAI rc6 generation 86 --- .../integration-releases/development.json | 20 ++++----- deployment/profiles/ai-factory.json | 4 +- deployment/treeai-component-inputs.json | 42 +++++++++---------- scripts/verify-platform.mjs | 13 +++--- 4 files changed, 41 insertions(+), 38 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0f64ba78..089f7635 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc115", - "generation": 85, + "release": "0.1.0~rc116", + "generation": 86, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "0f7806a85df7eee19cb22edeec3b690c49452d7e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a268ff6b8d4b6a55122a4c392078b660a0ecd529", "tag": "0.1.0-rc.115" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "7ab3869ddbaa9e17045273dac63134de2e70a23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1f79c37e42087c28483f24bd3a04e55c3e508738", "tag": "0.1.0-rc.116" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.29", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.30", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.30.tgz", "sha256": "a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-component-release.json", "sha256": "8021c7e408e0c9233758e912465f3c41a11bb6979bafdadd700a330bff142fab" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-compose.yml", "sha256": "23b3098dce0704fc2290f876a2ea21d2fec37e6bdf73df4ee23a8aebfeb1c5bd" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc4-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-component-release.json", "sha256": "3c3c7284f35c1e9788cd82def6a39d2bc144998c4a911397bb156e8b658200f3" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-compose.yml", "sha256": "0dafe7d2c2df53d35e5261e3c478123e9b54c0fd5c664e7653916f11e5e495b9" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-component-release.json", "sha256": "2594ab43b161225ec1eac5f4901520a6a7f704652ddc110b8a20e274fd05e80f" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-component-release.json", "sha256": "76a6b14b02957e9e49ec3a3ccca07b2da94f4c69a127aa41751b7098297d047b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } }] } ], - "createdAt": "2026-08-28T07:03:00.000Z" + "createdAt": "2026-08-28T14:12:45.000Z" } diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json index 44531a75..8f7adc8f 100644 --- a/deployment/profiles/ai-factory.json +++ b/deployment/profiles/ai-factory.json @@ -47,7 +47,9 @@ "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" }, "ai-lab-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-api-keys" }, "training-source": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-source" }, - "factory-control-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-control-key" }, + "ai-mode-ca": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-ca.crt" }, + "ai-mode-client-cert": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.crt" }, + "ai-mode-client-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.key" }, "factory-inference-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-inference-key" }, "factory-training-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-training-key" }, "hermes-api-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-api-key" }, diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index a24d32d3..df4e46cf 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc4", - "sourceCommit": "d5ea430d4f297a44f002f12e6b6daa53b21ad66a", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc4", - "contractReleaseSha256": "1a1f2592fd350767511e695d4680dded3ae2876a7e8262e3896bb3c531e675c7", - "imageManifestSha256": "d03971dd500481ebed164fcf349afe781042373daf9c3773370f9f09d2b5bef5", + "release": "0.11.0-rc6", + "sourceCommit": "7a5d590a8eeeb0b61173ae6a206aea7e4e24266c", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc6", + "contractReleaseSha256": "3b94ef63eb45d30af272914bfa16c3f1a0b28f9ed8162ef0e90c4c483cbd4709", + "imageManifestSha256": "a4144a4241b108fa0b007d1f8029e2f0c110f38ef70922572ac171941e9ba5a7", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc4", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/treeseed-treeai-0.11.0-rc4.tgz", + "version": "0.11.0-rc6", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/treeseed-treeai-0.11.0-rc6.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -22,10 +22,10 @@ "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", "treeSeedSdk": { "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.51", - "sourceCommit": "f22532e8cb552d548777f9f70dfdcfe5e3969127", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.51.tgz", - "sha256": "b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89" + "version": "0.13.0-rc.52", + "sourceCommit": "9b102945bde239b4980c7ff133cc854571e8b101", + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", + "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" }, "api": { "packageName": "@treeseed/api", @@ -38,30 +38,30 @@ }, "cli": { "packageName": "@treeseed/cli", - "version": "0.13.0-rc.29", - "sourceCommit": "ce3884ce817ca7552929d95929a1e545cfa8742b", - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.29.tgz", - "sha256": "20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325" + "version": "0.13.0-rc.30", + "sourceCommit": "63c075ba5b93c517b3860ef545b2c121a27d30c1", + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.30.tgz", + "sha256": "a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7" } }, "components": [ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-component-release.json", "sha256": "8021c7e408e0c9233758e912465f3c41a11bb6979bafdadd700a330bff142fab" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-inference-compose.yml", "sha256": "23b3098dce0704fc2290f876a2ea21d2fec37e6bdf73df4ee23a8aebfeb1c5bd" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-component-release.json", "sha256": "3c3c7284f35c1e9788cd82def6a39d2bc144998c4a911397bb156e8b658200f3" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-compose.yml", "sha256": "0dafe7d2c2df53d35e5261e3c478123e9b54c0fd5c664e7653916f11e5e495b9" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-component-release.json", "sha256": "d851f19d4d43126a76adb0e97e1c67e5d6d694fdfe047e317445dd0b13080c32" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-training-compose.yml", "sha256": "33e300687adc7b3be1fec96b67a29094e2a96997c3a944d4cb4b02a7ba761455" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-component-release.json", "sha256": "2594ab43b161225ec1eac5f4901520a6a7f704652ddc110b8a20e274fd05e80f" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-component-release.json", "sha256": "089d2f8a23b3195918f7e5e5720f33d8dbe4a4b5b1fe0e50f5726651dacf8c6c" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc4/ai-lab-compose.yml", "sha256": "d0248e8c2b053fe7555cfee88cce96426c5b39d324e17160b54ecc81a1e465ee" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-component-release.json", "sha256": "76a6b14b02957e9e49ec3a3ccca07b2da94f4c69a127aa41751b7098297d047b" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 0e83f7d0..dea205bc 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,12 +94,12 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc4' || treeAiInputs.sourceCommit !== 'd5ea430d4f297a44f002f12e6b6daa53b21ad66a') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc4 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc6' || treeAiInputs.sourceCommit !== '7a5d590a8eeeb0b61173ae6a206aea7e4e24266c') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc6 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.51' || treeAiInputs.contracts.treeSeedSdk.sha256 !== 'b3fc58a42bac9f3c635b933423066d580e87ddb79ea97c8aa9181f7000765e89') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); +if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); -if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.29' || treeAiInputs.contracts.cli.sha256 !== '20e041d25d827807b7609354f5a60471fd1f903b23705135e525bd9fbaf27325') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); +if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.30' || treeAiInputs.contracts.cli.sha256 !== 'a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); for (const component of treeAiInputs.components) { if (!/^https:\/\/github\.com\/treeseed-ai\/ai\/releases\/download\//u.test(component.manifest?.url) @@ -138,10 +138,11 @@ verifyInputCustody(factoryProfile, 'ai-inference'); verifyInputCustody(factoryProfile, 'ai-training'); if (JSON.stringify(factoryProfile.components?.['ai-lab']?.configuration?.secretEnvironment) !== JSON.stringify({ AI_LAB_API_KEYS: 'ai-lab-api-keys' })) fail('AI factory does not bind the lab API credential environment.'); const labSecretPaths = { - 'ai-lab-api-keys': '/etc/treeseed/credentials/ai-lab-api-keys', 'training-source': '/etc/treeseed/credentials/ai-lab-training-source', 'factory-control-key': '/etc/treeseed/credentials/ai-lab-factory-control-key', + 'ai-lab-api-keys': '/etc/treeseed/credentials/ai-lab-api-keys', 'training-source': '/etc/treeseed/credentials/ai-lab-training-source', 'factory-inference-key': '/etc/treeseed/credentials/ai-lab-factory-inference-key', 'factory-training-key': '/etc/treeseed/credentials/ai-lab-factory-training-key', 'hermes-api-key': '/etc/treeseed/credentials/ai-lab-hermes-api-key', 'hermes-password-hash': '/etc/treeseed/credentials/ai-lab-hermes-password-hash', 'hermes-session-secret': '/etc/treeseed/credentials/ai-lab-hermes-session-secret', 'training-ingest-key': '/etc/treeseed/credentials/ai-lab-training-ingest-key', - 'lab-library-action-key': '/etc/treeseed/credentials/ai-lab-lab-library-action-key', + 'lab-library-action-key': '/etc/treeseed/credentials/ai-lab-lab-library-action-key', 'ai-mode-ca': '/etc/treeseed/credentials/ai-mode-ca.crt', + 'ai-mode-client-cert': '/etc/treeseed/credentials/ai-mode-client.crt', 'ai-mode-client-key': '/etc/treeseed/credentials/ai-mode-client.key', }; for (const [id, reference] of Object.entries(labSecretPaths)) if (factoryProfile.secrets?.[id]?.provider !== 'file' || factoryProfile.secrets[id].reference !== reference) fail(`AI factory does not bind ${id} to the released lab custody path.`); if (factoryProfile.components?.['ai-lab']?.configuration?.environment?.RUNTIME_GID !== undefined) fail('Platform must leave RUNTIME_GID under manager-derived custody.'); From c74e3c5af6ea06ff1491b45a391157cccea915e7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 10:47:20 -0400 Subject: [PATCH 051/501] feat: compose TreeAI rc7 into generation 87 --- .../integration-releases/development.json | 16 ++++++------ deployment/profiles/ai-factory.json | 2 ++ deployment/profiles/ai-inference.json | 4 ++- deployment/treeai-component-inputs.json | 26 +++++++++---------- scripts/verify-platform.mjs | 6 ++--- 5 files changed, 29 insertions(+), 25 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 089f7635..dbdb548e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc116", - "generation": 86, + "release": "0.1.0~rc117", + "generation": 87, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "7ab3869ddbaa9e17045273dac63134de2e70a23a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1f79c37e42087c28483f24bd3a04e55c3e508738", "tag": "0.1.0-rc.116" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f1ee20aefa6a584e04195d8f3f616a1d6c1d8dda" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "69c5126ba26333c9085954176fcdaa7d862a955f", "tag": "0.1.0-rc.117" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-component-release.json", "sha256": "3c3c7284f35c1e9788cd82def6a39d2bc144998c4a911397bb156e8b658200f3" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-compose.yml", "sha256": "0dafe7d2c2df53d35e5261e3c478123e9b54c0fd5c664e7653916f11e5e495b9" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-component-release.json", "sha256": "2594ab43b161225ec1eac5f4901520a6a7f704652ddc110b8a20e274fd05e80f" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc6-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-component-release.json", "sha256": "76a6b14b02957e9e49ec3a3ccca07b2da94f4c69a127aa41751b7098297d047b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-component-release.json", "sha256": "6901f837686c1657ad56a87cbc4435f12a7b906f58cd3360995a68d8c2f30f2f" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-component-release.json", "sha256": "09cd9cbd9cc29fd41932766548ec2269733e849959d1481e3d82c8c503cb48cf" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-component-release.json", "sha256": "5f98f5d3eb27c0b6ce841f6e0e40fe252757d54949e1e208fb22f8bf995789ff" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } }] } ], - "createdAt": "2026-08-28T14:12:45.000Z" + "createdAt": "2026-08-28T14:40:11.000Z" } diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json index 8f7adc8f..2ad750e6 100644 --- a/deployment/profiles/ai-factory.json +++ b/deployment/profiles/ai-factory.json @@ -41,6 +41,8 @@ "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, + "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, + "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" }, "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json index c1ba6d20..28bca3f6 100644 --- a/deployment/profiles/ai-inference.json +++ b/deployment/profiles/ai-inference.json @@ -19,6 +19,8 @@ "secrets": { "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, - "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" } + "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, + "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, + "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" } } } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index df4e46cf..9f4fdf19 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc6", - "sourceCommit": "7a5d590a8eeeb0b61173ae6a206aea7e4e24266c", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc6", - "contractReleaseSha256": "3b94ef63eb45d30af272914bfa16c3f1a0b28f9ed8162ef0e90c4c483cbd4709", - "imageManifestSha256": "a4144a4241b108fa0b007d1f8029e2f0c110f38ef70922572ac171941e9ba5a7", + "release": "0.11.0-rc7", + "sourceCommit": "70c136a9784f7180932febcaf5c8563a630a0ed7", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc7", + "contractReleaseSha256": "93eae961f26af2bb31786c4033b341b1438d1c94237c0016f81606933559b9d8", + "imageManifestSha256": "201fb4cab749308fa1b019620fcc3b46063a86a92d5c1cde1ca6df56ea84a99f", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc6", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/treeseed-treeai-0.11.0-rc6.tgz", + "version": "0.11.0-rc7", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/treeseed-treeai-0.11.0-rc7.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-component-release.json", "sha256": "3c3c7284f35c1e9788cd82def6a39d2bc144998c4a911397bb156e8b658200f3" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-inference-compose.yml", "sha256": "0dafe7d2c2df53d35e5261e3c478123e9b54c0fd5c664e7653916f11e5e495b9" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-component-release.json", "sha256": "6901f837686c1657ad56a87cbc4435f12a7b906f58cd3360995a68d8c2f30f2f" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-component-release.json", "sha256": "2594ab43b161225ec1eac5f4901520a6a7f704652ddc110b8a20e274fd05e80f" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-component-release.json", "sha256": "09cd9cbd9cc29fd41932766548ec2269733e849959d1481e3d82c8c503cb48cf" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-component-release.json", "sha256": "76a6b14b02957e9e49ec3a3ccca07b2da94f4c69a127aa41751b7098297d047b" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc6/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-component-release.json", "sha256": "5f98f5d3eb27c0b6ce841f6e0e40fe252757d54949e1e208fb22f8bf995789ff" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index dea205bc..109ce1c2 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,8 +94,8 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc6' || treeAiInputs.sourceCommit !== '7a5d590a8eeeb0b61173ae6a206aea7e4e24266c') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc6 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc7' || treeAiInputs.sourceCommit !== '70c136a9784f7180932febcaf5c8563a630a0ed7') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc7 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); @@ -120,7 +120,7 @@ if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local' const requiredInputCustody = { 'ai-inference': { environment: { INFERENCE_DATABASE_URL: 'ai-inference-database-url', INFERENCE_POSTGRES_PASSWORD: 'ai-inference-postgres-password', AI_API_KEYS: 'ai-inference-api-keys' }, - secrets: { 'ai-inference-database-url': '/etc/treeseed/credentials/ai-inference-database-url', 'ai-inference-postgres-password': '/etc/treeseed/credentials/ai-inference-postgres-password', 'ai-inference-api-keys': '/etc/treeseed/credentials/ai-inference-api-keys' }, + secrets: { 'ai-inference-database-url': '/etc/treeseed/credentials/ai-inference-database-url', 'ai-inference-postgres-password': '/etc/treeseed/credentials/ai-inference-postgres-password', 'ai-inference-api-keys': '/etc/treeseed/credentials/ai-inference-api-keys', 'artifact-source-registry': '/etc/treeseed/credentials/ai-inference-artifact-source', 'artifact-destination-registry': '/etc/treeseed/credentials/ai-inference-artifact-destination' }, }, 'ai-training': { environment: { TRAINING_DATABASE_URL: 'ai-training-database-url', TRAINING_POSTGRES_PASSWORD: 'ai-training-postgres-password', AI_API_KEYS: 'ai-training-api-keys' }, From 4e637527a5c87051646d40fa64fdfe6506e01979 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 11:14:49 -0400 Subject: [PATCH 052/501] feat: compose TreeAI rc8 into generation 88 --- .../integration-releases/development.json | 16 ++++++------ deployment/treeai-component-inputs.json | 26 +++++++++---------- scripts/verify-platform.mjs | 4 +-- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index dbdb548e..649584ec 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc117", - "generation": 87, + "release": "0.1.0~rc118", + "generation": 88, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f1ee20aefa6a584e04195d8f3f616a1d6c1d8dda" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "69c5126ba26333c9085954176fcdaa7d862a955f", "tag": "0.1.0-rc.117" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "abc2553ec5bc3f02a0f086e6357fed650b59ba95" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "b8c724dcc6e25544663590f370526ac2140bca40", "tag": "0.1.0-rc.118" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-component-release.json", "sha256": "6901f837686c1657ad56a87cbc4435f12a7b906f58cd3360995a68d8c2f30f2f" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-component-release.json", "sha256": "09cd9cbd9cc29fd41932766548ec2269733e849959d1481e3d82c8c503cb48cf" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc7-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-component-release.json", "sha256": "5f98f5d3eb27c0b6ce841f6e0e40fe252757d54949e1e208fb22f8bf995789ff" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T14:40:11.000Z" + "createdAt": "2026-08-28T15:12:00.000Z" } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 9f4fdf19..0a020ad9 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc7", - "sourceCommit": "70c136a9784f7180932febcaf5c8563a630a0ed7", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc7", - "contractReleaseSha256": "93eae961f26af2bb31786c4033b341b1438d1c94237c0016f81606933559b9d8", - "imageManifestSha256": "201fb4cab749308fa1b019620fcc3b46063a86a92d5c1cde1ca6df56ea84a99f", + "release": "0.11.0-rc8", + "sourceCommit": "0ab34e98d10601d62dadc547b2d7ed4492a994cd", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc8", + "contractReleaseSha256": "0939bc71ebb932e6563b29852a7608779fb71ce22160da194b425028479a2423", + "imageManifestSha256": "42aa7a7ca7572fbab991a9978e7fde5aa4ef8a5461b5ed430953e0fffe309044", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc7", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/treeseed-treeai-0.11.0-rc7.tgz", + "version": "0.11.0-rc8", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/treeseed-treeai-0.11.0-rc8.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-component-release.json", "sha256": "6901f837686c1657ad56a87cbc4435f12a7b906f58cd3360995a68d8c2f30f2f" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-component-release.json", "sha256": "09cd9cbd9cc29fd41932766548ec2269733e849959d1481e3d82c8c503cb48cf" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-component-release.json", "sha256": "5f98f5d3eb27c0b6ce841f6e0e40fe252757d54949e1e208fb22f8bf995789ff" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc7/ai-lab-compose.yml", "sha256": "0694eab5f6c4aec5714e0dd90550a271cdcda229d7a4e0c907a3bd7b1ffe5a21" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 109ce1c2..461e124c 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,8 +94,8 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc7' || treeAiInputs.sourceCommit !== '70c136a9784f7180932febcaf5c8563a630a0ed7') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc7 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc8' || treeAiInputs.sourceCommit !== '0ab34e98d10601d62dadc547b2d7ed4492a994cd') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc8 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); From a39ac36faff40754de391eeb2a986429e364f6a1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 18:19:50 -0400 Subject: [PATCH 053/501] fix: compose Deployment rc119 generation 89 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 649584ec..3eb565be 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc118", - "generation": 88, + "release": "0.1.0~rc119", + "generation": 89, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "abc2553ec5bc3f02a0f086e6357fed650b59ba95" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "b8c724dcc6e25544663590f370526ac2140bca40", "tag": "0.1.0-rc.118" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "492ea88293a1b66c1ec29ba8c5b2f87a4bf265e0" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.119" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T15:12:00.000Z" + "createdAt": "2026-08-28T22:19:00.000Z" } From b3df9a38d1758630f77a85bcb491e82006844b92 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 18:33:27 -0400 Subject: [PATCH 054/501] chore: compose TreeAI rc9 generation 90 --- .../integration-releases/development.json | 16 ++++++------ deployment/treeai-component-inputs.json | 26 +++++++++---------- scripts/verify-platform.mjs | 4 +-- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 3eb565be..decb5e2d 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc119", - "generation": 89, + "release": "0.1.0~rc120", + "generation": 90, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "492ea88293a1b66c1ec29ba8c5b2f87a4bf265e0" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.119" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.120" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T22:19:00.000Z" + "createdAt": "2026-08-28T22:31:00.000Z" } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 0a020ad9..4fa68494 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc8", - "sourceCommit": "0ab34e98d10601d62dadc547b2d7ed4492a994cd", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc8", - "contractReleaseSha256": "0939bc71ebb932e6563b29852a7608779fb71ce22160da194b425028479a2423", - "imageManifestSha256": "42aa7a7ca7572fbab991a9978e7fde5aa4ef8a5461b5ed430953e0fffe309044", + "release": "0.11.0-rc9", + "sourceCommit": "92c7b2edc73416d77c5c0a6789ef73dba71ddf92", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc9", + "contractReleaseSha256": "be5aca3d87167057494feadb9c9c0291c2047c9b7079ac2f241ec5238c5709d8", + "imageManifestSha256": "a4a727b0d7c8a0e0a2f688a9006ca020e1030275026880361a06a105dc040c2d", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc8", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/treeseed-treeai-0.11.0-rc8.tgz", + "version": "0.11.0-rc9", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/treeseed-treeai-0.11.0-rc9.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 461e124c..d62a8630 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,8 +94,8 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc8' || treeAiInputs.sourceCommit !== '0ab34e98d10601d62dadc547b2d7ed4492a994cd') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc8 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc9 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); From c8b89a7e7887129dfeca820aa8267113ac4a020f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 18:33:27 -0400 Subject: [PATCH 055/501] chore: compose TreeAI rc9 generation 90 --- .../integration-releases/development.json | 16 ++++++------ deployment/treeai-component-inputs.json | 26 +++++++++---------- scripts/verify-platform.mjs | 4 +-- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 3eb565be..decb5e2d 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc119", - "generation": 89, + "release": "0.1.0~rc120", + "generation": 90, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "492ea88293a1b66c1ec29ba8c5b2f87a4bf265e0" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.119" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.120" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc8-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T22:19:00.000Z" + "createdAt": "2026-08-28T22:31:00.000Z" } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 0a020ad9..4fa68494 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -1,15 +1,15 @@ { "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc8", - "sourceCommit": "0ab34e98d10601d62dadc547b2d7ed4492a994cd", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc8", - "contractReleaseSha256": "0939bc71ebb932e6563b29852a7608779fb71ce22160da194b425028479a2423", - "imageManifestSha256": "42aa7a7ca7572fbab991a9978e7fde5aa4ef8a5461b5ed430953e0fffe309044", + "release": "0.11.0-rc9", + "sourceCommit": "92c7b2edc73416d77c5c0a6789ef73dba71ddf92", + "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc9", + "contractReleaseSha256": "be5aca3d87167057494feadb9c9c0291c2047c9b7079ac2f241ec5238c5709d8", + "imageManifestSha256": "a4a727b0d7c8a0e0a2f688a9006ca020e1030275026880361a06a105dc040c2d", "contracts": { "genericSdk": { "packageName": "@treeseed/treeai", - "version": "0.11.0-rc8", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/treeseed-treeai-0.11.0-rc8.tgz", + "version": "0.11.0-rc9", + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/treeseed-treeai-0.11.0-rc9.tgz", "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" }, "openapi": { @@ -48,20 +48,20 @@ { "componentId": "ai-inference", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-component-release.json", "sha256": "b6e7a8beb6db4260516e0fed5bd9d67b19b63d908941529dc5a3a89eb6aca444" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-inference-compose.yml", "sha256": "dbdc76d5e132344d7f8b40b0b9eb998caa5cff26ddcdc9b19570f2fd0096c3c6" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } }, { "componentId": "ai-training", "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-component-release.json", "sha256": "c9900e126046fea015e8626a56d3e52aa6919e5debb3f119b58074e4bf206763" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-training-compose.yml", "sha256": "5ca836073253c4aecf44ccd132ee381027ef6e5bf7bef2e42c92ae1ae1e1ab11" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }, { "componentId": "ai-lab", "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-component-release.json", "sha256": "5855ef298fd09f64fe5d14b42b8a5d8016ae3fe473a517aaf32f116a1cb39e86" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc8/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } + "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, + "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } } ] } diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 461e124c..d62a8630 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -94,8 +94,8 @@ if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost. if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc8' || treeAiInputs.sourceCommit !== '0ab34e98d10601d62dadc547b2d7ed4492a994cd') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc8 artifact.'); +if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); +if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc9 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); From 3ab9dc2387127beec63ecdde8f69d5b506720224 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 18:40:42 -0400 Subject: [PATCH 056/501] fix: bind Deployment rc121 generation 91 --- deployment/integration-releases/development.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index decb5e2d..7112bb28 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc120", - "generation": 90, + "release": "0.1.0~rc121", + "generation": 91, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "9491f5b3d18ac4ae7310c11bdc73d37c41176ba0", "tag": "0.1.0-rc.120" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "aef76984737b7e624636314d4e50fed81ace2770", "tag": "0.1.0-rc.121" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T22:31:00.000Z" + "createdAt": "2026-08-28T22:41:00.000Z" } From 884db06344aa45c4cf93f5fd11af4414aac49d80 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 19:08:31 -0400 Subject: [PATCH 057/501] chore: freeze Deployment rc122 generation 92 --- deployment/integration-releases/development.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 7112bb28..2aff2f8e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc121", - "generation": 91, + "release": "0.1.0~rc122", + "generation": 92, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "aef76984737b7e624636314d4e50fed81ace2770", "tag": "0.1.0-rc.121" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "388fab73b2bca7e4d20e774a606d4a19181b8def", "tag": "0.1.0-rc.122" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T22:41:00.000Z" + "createdAt": "2026-08-28T23:08:00.000Z" } From a034c03c557e8d5ef27c1f216b8dfca6b3c4dc42 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 19:23:53 -0400 Subject: [PATCH 058/501] chore(deployment): freeze rc123 generation 93 candidate --- deployment/integration-releases/development.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 2aff2f8e..f9cde9d4 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc122", - "generation": 92, + "release": "0.1.0~rc123", + "generation": 93, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "388fab73b2bca7e4d20e774a606d4a19181b8def", "tag": "0.1.0-rc.122" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "89e71d4e25ad73d310b25fb72a9a7113d8c9f763", "tag": "0.1.0-rc.123" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T23:08:00.000Z" + "createdAt": "2026-08-28T23:22:00.000Z" } From f3bb8fba656e9cf9bb651e2b312e8ab3a6a991e4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 19:45:24 -0400 Subject: [PATCH 059/501] chore(ai): freeze TreeAI rc10 generation 94 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f9cde9d4..a3c8658f 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc123", - "generation": 93, + "release": "0.1.0~rc124", + "generation": 94, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "89e71d4e25ad73d310b25fb72a9a7113d8c9f763", "tag": "0.1.0-rc.123" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4d8cb0d03c25babad01712c82110a91c21b42a70", "tag": "0.1.0-rc.124" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc9-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-inference-component-release.json", "sha256": "5bdaf8abce90499efcd7720394d29c11a5237bb6fb30b5c98d576ff904410bbc" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-inference-compose.yml", "sha256": "360369d7090a169021dff024262e293d9484dee06cd83180f9e8c99b377d51d2" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-training-component-release.json", "sha256": "92d8d19afcf7deec1efb9ee60c10f94ddb8c45a2adbac51a85846b326a718c19" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-lab-component-release.json", "sha256": "471380669637828fe3d709f57d3d0756a5554d7e0ee7de8893c26b4fae01b2db" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T23:22:00.000Z" + "createdAt": "2026-08-28T23:43:00.000Z" } From 034ec06e3366f5b3d8d3997300d68ab0b46190c6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 21:04:14 -0400 Subject: [PATCH 060/501] chore(ai): freeze TreeAI rc11 generation 95 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index a3c8658f..90a04330 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc124", - "generation": 94, + "release": "0.1.0~rc125", + "generation": 95, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4d8cb0d03c25babad01712c82110a91c21b42a70", "tag": "0.1.0-rc.124" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "2b3f1e682740417c0decb2f858b1fbfa337da60b", "tag": "0.1.0-rc.125" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-inference-component-release.json", "sha256": "5bdaf8abce90499efcd7720394d29c11a5237bb6fb30b5c98d576ff904410bbc" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-inference-compose.yml", "sha256": "360369d7090a169021dff024262e293d9484dee06cd83180f9e8c99b377d51d2" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-training-component-release.json", "sha256": "92d8d19afcf7deec1efb9ee60c10f94ddb8c45a2adbac51a85846b326a718c19" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc10-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-lab-component-release.json", "sha256": "471380669637828fe3d709f57d3d0756a5554d7e0ee7de8893c26b4fae01b2db" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc10/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-inference-component-release.json", "sha256": "c29a8316330fab3dd956d61d5df539119ad190675807b68e998043a1cb51134f" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-inference-compose.yml", "sha256": "7813643ae9babbe1d5e3aece0283d697c599f8d7c7428ba730d8ca8b195c04fb" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-training-component-release.json", "sha256": "c1d008c0e5b1140336505ea8ce76beadaa326ff62c38113a5fa0ad7768124f52" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-lab-component-release.json", "sha256": "9d02d7298ed5830c106b416466334c790740dd40a278a1713b6bbd90f051e10c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-28T23:43:00.000Z" + "createdAt": "2026-08-29T01:03:00.000Z" } From c523a72e33ce24f76a22c5a8b198112ca3d76be2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 21:36:03 -0400 Subject: [PATCH 061/501] chore(ai): freeze TreeAI rc12 generation 96 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 90a04330..8c67314c 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc125", - "generation": 95, + "release": "0.1.0~rc126", + "generation": 96, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "2b3f1e682740417c0decb2f858b1fbfa337da60b", "tag": "0.1.0-rc.125" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "45145e4ede885ec18984090b11874760ff39f42b", "tag": "0.1.0-rc.126" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-inference-component-release.json", "sha256": "c29a8316330fab3dd956d61d5df539119ad190675807b68e998043a1cb51134f" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-inference-compose.yml", "sha256": "7813643ae9babbe1d5e3aece0283d697c599f8d7c7428ba730d8ca8b195c04fb" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-training-component-release.json", "sha256": "c1d008c0e5b1140336505ea8ce76beadaa326ff62c38113a5fa0ad7768124f52" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-lab-component-release.json", "sha256": "9d02d7298ed5830c106b416466334c790740dd40a278a1713b6bbd90f051e10c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc11/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-inference-component-release.json", "sha256": "6a40b91bc88e055743f8413d8fb18b590e2424efb529bcac6b2dd5c8c7660559" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-inference-compose.yml", "sha256": "4d7692e156c445e58518543a952a45166354e9369e8458785fc4b87c61684a83" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-training-component-release.json", "sha256": "54ff607e213b9138266d82c72b4073cd09d0fc8ad07d382d06c0042800ef47ee" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-lab-component-release.json", "sha256": "e9ac632a89328532851b1f0d78b397f36af29bc3989d47a5ffadfdef36ba2f0c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } ], - "createdAt": "2026-08-29T01:03:00.000Z" + "createdAt": "2026-08-29T01:36:00.000Z" } From 7ac6e12f1b4769f43e6087f1fdc9bda5010c7ab3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 22:38:14 -0400 Subject: [PATCH 062/501] chore(ai): freeze TreeAI rc13 generation 97 candidate --- deployment/integration-releases/development.json | 16 ++++++++-------- deployment/treeai-component-inputs.json | 8 ++++---- scripts/verify-platform.mjs | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 8c67314c..638e289a 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc126", - "generation": 96, + "release": "0.1.0~rc127", + "generation": 97, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "45145e4ede885ec18984090b11874760ff39f42b", "tag": "0.1.0-rc.126" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "f52eee910036fbdf187ee760c6b4b32dd004b5aa", "tag": "0.1.0-rc.127" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.52", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-inference-component-release.json", "sha256": "6a40b91bc88e055743f8413d8fb18b590e2424efb529bcac6b2dd5c8c7660559" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-inference-compose.yml", "sha256": "4d7692e156c445e58518543a952a45166354e9369e8458785fc4b87c61684a83" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-training-component-release.json", "sha256": "54ff607e213b9138266d82c72b4073cd09d0fc8ad07d382d06c0042800ef47ee" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-training-compose.yml", "sha256": "8ff2cd4e8c70c031d0e4018811c6690b2d0986d8b4ad803f411f6096ef56d3df" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-lab-component-release.json", "sha256": "e9ac632a89328532851b1f0d78b397f36af29bc3989d47a5ffadfdef36ba2f0c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc12/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-inference-component-release.json", "sha256": "6a91f5e387f3dfef847b9a06dcf7853a7191b2784e9e90299121795e937fccfe" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-inference-compose.yml", "sha256": "8aa8ac0e0e90283ba6e47e4a6213b608ea9c0f59d123c775b27bc449d02200a8" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-training-component-release.json", "sha256": "dcc35e5ebdf3fb293bd5b186fa0e20681c15356663109f7a3edd639b2e6982ef" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-training-compose.yml", "sha256": "0f6341a310fbdb98f650d535461d65683bb5a74bee2d26b645f99a851f206510" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-lab-component-release.json", "sha256": "a22f12a6b16c5e13a6a1c1a981d957683bfdb8f3cf4e22a2489497cb1b218360" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } ], - "createdAt": "2026-08-29T01:36:00.000Z" + "createdAt": "2026-08-29T02:36:00.000Z" } diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json index 4fa68494..3f23172c 100644 --- a/deployment/treeai-component-inputs.json +++ b/deployment/treeai-component-inputs.json @@ -22,10 +22,10 @@ "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", "treeSeedSdk": { "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.52", - "sourceCommit": "9b102945bde239b4980c7ff133cc854571e8b101", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.52.tgz", - "sha256": "2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc" + "version": "0.13.0-rc.53", + "sourceCommit": "ac6a535b99867cfc9e955b71ec333ed28980020a", + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", + "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" }, "api": { "packageName": "@treeseed/api", diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index d62a8630..bd7c019f 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -97,7 +97,7 @@ const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')) if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc9 artifact.'); if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.52' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '2ae7abe16f23c6471d8844973720e7d821a3185fbdb97e1ffce5988f042cf2cc') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); +if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.53' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.30' || treeAiInputs.contracts.cli.sha256 !== 'a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); From 1f7228f7cfbac12a8164e037c46d3a22b9bea84f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 23:03:45 -0400 Subject: [PATCH 063/501] chore(ai): freeze TreeAI rc14 generation 98 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 638e289a..b2756ed7 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc127", - "generation": 97, + "release": "0.1.0~rc128", + "generation": 98, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "f52eee910036fbdf187ee760c6b4b32dd004b5aa", "tag": "0.1.0-rc.127" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a51f0036d21a640557a4e3846cbbc3993da1d1e0", "tag": "0.1.0-rc.128" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-inference-component-release.json", "sha256": "6a91f5e387f3dfef847b9a06dcf7853a7191b2784e9e90299121795e937fccfe" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-inference-compose.yml", "sha256": "8aa8ac0e0e90283ba6e47e4a6213b608ea9c0f59d123c775b27bc449d02200a8" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-training-component-release.json", "sha256": "dcc35e5ebdf3fb293bd5b186fa0e20681c15356663109f7a3edd639b2e6982ef" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-training-compose.yml", "sha256": "0f6341a310fbdb98f650d535461d65683bb5a74bee2d26b645f99a851f206510" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-lab-component-release.json", "sha256": "a22f12a6b16c5e13a6a1c1a981d957683bfdb8f3cf4e22a2489497cb1b218360" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc13/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-inference-component-release.json", "sha256": "907940c1da79bf37e013853534b5285bf3fbf8bca71bb460c6adb0ebf69d2d87" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-inference-compose.yml", "sha256": "64429d29e9ce51b06310064173b28876575055ebb1c8d8075b569b1056d624f3" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-training-component-release.json", "sha256": "5844957b470fad63347184fbf8c662922ec18c177978dc76e616f4ba70cdf531" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-training-compose.yml", "sha256": "7e47e09838b1c069a6a24a8aaf3c18ef39f09417fbca22d78138dde7bd477935" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-lab-component-release.json", "sha256": "e8569c604020909452c2f158b899296f08c76c3533e38178b65b60fd173e93d8" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } ], - "createdAt": "2026-08-29T02:36:00.000Z" + "createdAt": "2026-08-29T03:04:00.000Z" } From 8298862550a7d8cea9d8dc994701516b582e7121 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 23:25:27 -0400 Subject: [PATCH 064/501] chore(ai): freeze TreeAI rc15 generation 99 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index b2756ed7..40f5caa9 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc128", - "generation": 98, + "release": "0.1.0~rc129", + "generation": 99, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a51f0036d21a640557a4e3846cbbc3993da1d1e0", "tag": "0.1.0-rc.128" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "7fcbe2e8e2a220b5ed5e94cd168a72de6434b0cd", "tag": "0.1.0-rc.129" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-inference-component-release.json", "sha256": "907940c1da79bf37e013853534b5285bf3fbf8bca71bb460c6adb0ebf69d2d87" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-inference-compose.yml", "sha256": "64429d29e9ce51b06310064173b28876575055ebb1c8d8075b569b1056d624f3" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-training-component-release.json", "sha256": "5844957b470fad63347184fbf8c662922ec18c177978dc76e616f4ba70cdf531" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-training-compose.yml", "sha256": "7e47e09838b1c069a6a24a8aaf3c18ef39f09417fbca22d78138dde7bd477935" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-lab-component-release.json", "sha256": "e8569c604020909452c2f158b899296f08c76c3533e38178b65b60fd173e93d8" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc14/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-inference-component-release.json", "sha256": "49dbd20a1056cdf073c9ed6111ef12d3808cf13b6a0a0e0380bd56a578a6a979" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-inference-compose.yml", "sha256": "c32693159e9ed5c26bf17e29ba1f64999d2238401f875bd4a23e8ce73e4d1ee2" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-training-component-release.json", "sha256": "ae54075ec9ad1bbde2ea95b2831c1e5c7f94ca2b641785f1f28345580c1acc19" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-lab-component-release.json", "sha256": "a9801b12782404b05ceb44e3f2a2080e348635d902087f97076e06f14a7e9b5c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } ], - "createdAt": "2026-08-29T03:04:00.000Z" + "createdAt": "2026-08-29T03:25:00.000Z" } From ad9c7b3ca9934dbc9053ead6dc3883bc7aadaf11 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 28 Aug 2026 23:54:07 -0400 Subject: [PATCH 065/501] chore(ai): freeze TreeAI rc16 generation 100 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 40f5caa9..ab36886b 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc129", - "generation": 99, + "release": "0.1.0~rc130", + "generation": 100, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "7fcbe2e8e2a220b5ed5e94cd168a72de6434b0cd", "tag": "0.1.0-rc.129" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c13acfb74411753e1075fdc3dad0849fa62e70f3", "tag": "0.1.0-rc.130" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-inference-component-release.json", "sha256": "49dbd20a1056cdf073c9ed6111ef12d3808cf13b6a0a0e0380bd56a578a6a979" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-inference-compose.yml", "sha256": "c32693159e9ed5c26bf17e29ba1f64999d2238401f875bd4a23e8ce73e4d1ee2" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-training-component-release.json", "sha256": "ae54075ec9ad1bbde2ea95b2831c1e5c7f94ca2b641785f1f28345580c1acc19" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-lab-component-release.json", "sha256": "a9801b12782404b05ceb44e3f2a2080e348635d902087f97076e06f14a7e9b5c" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc15/ai-lab-compose.yml", "sha256": "eb690b37954202fc7b54f5268efdec431a9654db6289d7b81d762816c157516e" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-inference-component-release.json", "sha256": "b89f77744c3408d2a00cc2cdab229cbede1831f264c92c6ccb7d2e2c27b2c02c" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-inference-compose.yml", "sha256": "c32693159e9ed5c26bf17e29ba1f64999d2238401f875bd4a23e8ce73e4d1ee2" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-training-component-release.json", "sha256": "d9ce4982acf672fada845c22dfc3e70800f021e0be4fffe69256820faf75bfd2" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-lab-component-release.json", "sha256": "886171b1dd7b750dc6c8c5eebebc891085c4350b4e49c9e715a81d43e46dfad0" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-lab-compose.yml", "sha256": "08a15fdd0bb77cef5e65b4d900756541857db6949f21c74c69adaaf600b7fcc1" } }] } ], - "createdAt": "2026-08-29T03:25:00.000Z" + "createdAt": "2026-08-29T03:54:00.000Z" } From 91c32a8fcf143a11bcfb17a53f4f8ce78d20748c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 00:07:28 -0400 Subject: [PATCH 066/501] chore(ai): freeze TreeAI rc17 generation 101 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index ab36886b..74f8b63e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc130", - "generation": 100, + "release": "0.1.0~rc131", + "generation": 101, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c13acfb74411753e1075fdc3dad0849fa62e70f3", "tag": "0.1.0-rc.130" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c966576df03171d7a550df136ade13c498c47685", "tag": "0.1.0-rc.131" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-inference-component-release.json", "sha256": "b89f77744c3408d2a00cc2cdab229cbede1831f264c92c6ccb7d2e2c27b2c02c" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-inference-compose.yml", "sha256": "c32693159e9ed5c26bf17e29ba1f64999d2238401f875bd4a23e8ce73e4d1ee2" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-training-component-release.json", "sha256": "d9ce4982acf672fada845c22dfc3e70800f021e0be4fffe69256820faf75bfd2" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc16-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-lab-component-release.json", "sha256": "886171b1dd7b750dc6c8c5eebebc891085c4350b4e49c9e715a81d43e46dfad0" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc16/ai-lab-compose.yml", "sha256": "08a15fdd0bb77cef5e65b4d900756541857db6949f21c74c69adaaf600b7fcc1" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-inference-component-release.json", "sha256": "fc3501489742f576575a0356ba560ac60c9149b0c1753f7a8c3321c2a3ee6ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-inference-compose.yml", "sha256": "905b0f9544d5d92550e6c17bb8ac880861f3132cb7f48b5a2ac5447d2995a1a1" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-training-component-release.json", "sha256": "bbbdccf074080b7f605dba5f840d9dcdce7e7ffb384df578f938a01f6250d393" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-lab-component-release.json", "sha256": "8f535d580640f587900763ec507e97a7054a361b9936da2ad2aba6ac69f54ad4" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-lab-compose.yml", "sha256": "08a15fdd0bb77cef5e65b4d900756541857db6949f21c74c69adaaf600b7fcc1" } }] } ], - "createdAt": "2026-08-29T03:54:00.000Z" + "createdAt": "2026-08-29T04:07:00.000Z" } From e8ad333abdd88451cc06d24236e2a968af143d3e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 00:08:26 -0400 Subject: [PATCH 067/501] fix(ai): bind exact deployment rc131 head --- deployment/integration-releases/development.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 74f8b63e..0650336d 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -5,7 +5,7 @@ "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c966576df03171d7a550df136ade13c498c47685", "tag": "0.1.0-rc.131" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c966576878383055164bc04a06a6de9c0fec72c1", "tag": "0.1.0-rc.131" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, From 335bbc7bfb7f5da4acb57111eef19e2b8252cbf0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 00:33:03 -0400 Subject: [PATCH 068/501] chore(ai): freeze TreeAI rc18 generation 102 candidate --- deployment/integration-releases/development.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0650336d..1fc05401 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc131", - "generation": 101, + "release": "0.1.0~rc132", + "generation": 102, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c966576878383055164bc04a06a6de9c0fec72c1", "tag": "0.1.0-rc.131" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "f0a16dc464b40141fce3dfd6dc655e7a94d98c69", "tag": "0.1.0-rc.132" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-inference-component-release.json", "sha256": "fc3501489742f576575a0356ba560ac60c9149b0c1753f7a8c3321c2a3ee6ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-inference-compose.yml", "sha256": "905b0f9544d5d92550e6c17bb8ac880861f3132cb7f48b5a2ac5447d2995a1a1" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-training-component-release.json", "sha256": "bbbdccf074080b7f605dba5f840d9dcdce7e7ffb384df578f938a01f6250d393" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc17-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-lab-component-release.json", "sha256": "8f535d580640f587900763ec507e97a7054a361b9936da2ad2aba6ac69f54ad4" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc17/ai-lab-compose.yml", "sha256": "08a15fdd0bb77cef5e65b4d900756541857db6949f21c74c69adaaf600b7fcc1" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-inference-component-release.json", "sha256": "e7e2bbbf6769f9c277c81c5c369cea3e8a381dce7ff9125015ad7a39bcbdbffa" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-inference-compose.yml", "sha256": "905b0f9544d5d92550e6c17bb8ac880861f3132cb7f48b5a2ac5447d2995a1a1" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-training-component-release.json", "sha256": "13b827d169723f37813f0a194874e9125eb6fe5b208fd00d2b3ea2e7deb8a05a" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-lab-component-release.json", "sha256": "d942ceb926afc31cfce0f8314e8a436a1fb2c0caa155fc126e6614992d353d01" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-lab-compose.yml", "sha256": "d8d1e7fdb2030497f943c755a40e4f6e3c117493814b7b2c67b956c347576060" } }] } ], - "createdAt": "2026-08-29T04:07:00.000Z" + "createdAt": "2026-08-29T04:32:00.000Z" } From ddd99423d45168716917e7edc4803538e65eda82 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 00:57:52 -0400 Subject: [PATCH 069/501] chore(ai): freeze TreeAI rc19 generation 103 --- deployment/integration-releases/development.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 1fc05401..ad3ebdac 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc132", - "generation": 102, + "release": "0.1.0~rc133", + "generation": 103, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e3b652f29aa49649f765d5fbe97b6685c626599f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "f0a16dc464b40141fce3dfd6dc655e7a94d98c69", "tag": "0.1.0-rc.132" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "7ed84a94b3d33c8c11b35398979280f3a127333e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "0a175a2822b8bf4eeef0c907156ba9532306ef55", "tag": "0.1.0-rc.133" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, @@ -25,9 +25,9 @@ { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-inference-component-release.json", "sha256": "e7e2bbbf6769f9c277c81c5c369cea3e8a381dce7ff9125015ad7a39bcbdbffa" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-inference-compose.yml", "sha256": "905b0f9544d5d92550e6c17bb8ac880861f3132cb7f48b5a2ac5447d2995a1a1" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-training-component-release.json", "sha256": "13b827d169723f37813f0a194874e9125eb6fe5b208fd00d2b3ea2e7deb8a05a" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-training-compose.yml", "sha256": "7d2d31efe650e2bda8dec79d49f1ab3e58ba3c42caa25dc239ff2ffc271d5c92" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc18-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-lab-component-release.json", "sha256": "d942ceb926afc31cfce0f8314e8a436a1fb2c0caa155fc126e6614992d353d01" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc18/ai-lab-compose.yml", "sha256": "d8d1e7fdb2030497f943c755a40e4f6e3c117493814b7b2c67b956c347576060" } }] } + { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-29T04:32:00.000Z" + "createdAt": "2026-08-29T04:57:00.000Z" } From 55f0a6bca07884b24fdbd6263efe62304e580057 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 09:10:04 -0400 Subject: [PATCH 070/501] chore(api): freeze rc50 generation 104 candidate --- deployment/integration-releases/development.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index ad3ebdac..620f72f8 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc133", - "generation": 103, + "release": "0.1.0~rc134", + "generation": 104, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "7ed84a94b3d33c8c11b35398979280f3a127333e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "0a175a2822b8bf4eeef0c907156ba9532306ef55", "tag": "0.1.0-rc.133" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d6f479c675f20984553d2253897404cfd41772bb" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c5536eec37b1551eb79c0673cc2f886b24ccfec5", "tag": "0.1.0-rc.134" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.49", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.54", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.54.tgz", "sha256": "6329eb3958c5a765ad0084885b9f21873d61ba045b36a8653963c0da63e9bdb4" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.50", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/treeseed-api-0.8.0-rc.50.tgz", "sha256": "24920726339e17625e088dd91a0dff4f97eedc240ea840c0c289d27a6ce598b1" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, @@ -20,7 +20,7 @@ { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc49-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/component-release.json", "sha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/compose.yml", "sha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" } }] }, + { "componentId": "api", "release": "0.8.0~rc50-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/component-release.json", "sha256": "bc6484ce743779c8d5855358e2f7a97ecc777b0325f93b7907aaa1ddc3f137fe" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/compose.yml", "sha256": "526bf552a5ff8f948bcb77f0937d9638ce9158c94cbbeaf0d691cbd4bab3ac12" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-29T04:57:00.000Z" + "createdAt": "2026-08-29T13:09:37.000Z" } From 6f25b33e84409eb097be980af75b95acc4b05539 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 11:28:37 -0400 Subject: [PATCH 071/501] feat(security): require Kata and encrypted provider custody --- .../capacity-provider-development.json | 135 ++++++++++++++-- .../host-configs/development-workstation.json | 146 +++++++++++++++--- docs/kata-assignment-security.md | 39 +++++ scripts/verify-platform.mjs | 9 +- .../template/treeseed.capacity-provider.yaml | 139 +++++++++++++---- .../template/treeseed.capacity-provider.yaml | 139 +++++++++++++---- .../template/treeseed.capacity-provider.yaml | 139 +++++++++++++---- .../template/treeseed.capacity-provider.yaml | 139 +++++++++++++---- treeseed.capacity-provider.yaml | 139 +++++++++++++---- 9 files changed, 840 insertions(+), 184 deletions(-) create mode 100644 docs/kata-assignment-security.md diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index 47fc4de7..abc6bc63 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -1,16 +1,29 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "capacity-provider-development", - "generation": 2, - "host": { "id": "provider-development-01", "role": "capacity-provider", "architecture": "amd64" }, - "runtime": { "management": "managed", "environment": "production" }, + "generation": 3, + "host": { + "id": "provider-development-01", + "role": "capacity-provider", + "architecture": "amd64" + }, + "runtime": { + "management": "managed", + "environment": "production" + }, "updates": { "defaultTrack": "development", "stable": { "metadataPollSeconds": 86400, - "maintenanceWindow": { "weekday": "sunday", "localTime": "03:00", "jitterMinutes": 20 } + "maintenanceWindow": { + "weekday": "sunday", + "localTime": "03:00", + "jitterMinutes": 20 + } }, - "development": { "pollSeconds": 60 } + "development": { + "pollSeconds": 60 + } }, "components": { "agent": { @@ -18,42 +31,132 @@ "track": "development", "profile": "capacity-provider", "aliases": {}, - "resources": { "cpuCores": 8, "memoryBytes": 17179869184, "gpuDevices": [] }, + "resources": { + "cpuCores": 8, + "memoryBytes": 17179869184, + "gpuDevices": [] + }, "connections": { "control-plane": { "kind": "remote", "url": "https://api.treeseed.example", "audience": "https://api.treeseed.example", - "tls": { "trust": "system", "serverName": "api.treeseed.example" }, - "authentication": { "mode": "bearer", "secretRef": "provider-registration" }, - "healthGate": { "protocol": "https", "path": "/v1/health", "timeoutSeconds": 30 } + "tls": { + "trust": "system", + "serverName": "api.treeseed.example" + }, + "authentication": { + "mode": "bearer", + "secretRef": "provider-registration" + }, + "healthGate": { + "protocol": "https", + "path": "/v1/health", + "timeoutSeconds": 30 + } } }, "configuration": { - "environment": { "TREESEED_PROVIDER_MODE": "development" }, + "environment": { + "TREESEED_PROVIDER_MODE": "development" + }, "providerEnrollment": { "connectionId": "primary", "teamId": "team:treeseed", "offer": { "maxConcurrentRunners": 4, - "capabilities": ["communication", "agent-execution", "engineering", "research", "planning", "acting", "verification"] + "capabilities": [ + "communication", + "agent-execution", + "engineering", + "research", + "planning", + "acting", + "verification" + ] } }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 3\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v2\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles:\n - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true }\n - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true }\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities: [communication, agent-execution, research, planning]\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities: [agent-execution, engineering, verification, repository_work]\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration: { amount: 600, unit: seconds }\n capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work]\nadapters:\n - id: codex-local\n adapter: codex\n isolation: process\n module: module:codex-chat\n profile: subscription\n protocol: responses\n credentialProfiles: [codex-auth, codex-executable]\n laneIds: [communication, platform, workday]\n maxConcurrentWorkers: 4\n minimumAssignmentDuration: { amount: 600, unit: seconds }\n nativeLimits: { availableAgentSeconds: 28800 }\n capabilities: [communication, agent-execution, engineering, research, planning, acting, verification]\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } } }, "network": { - "manager": { "binding": "127.0.0.1:4790", "aliases": [], "sans": ["127.0.0.1"], "trustedLanCidrs": [] } + "manager": { + "binding": "127.0.0.1:4790", + "aliases": [], + "sans": [ + "127.0.0.1" + ], + "trustedLanCidrs": [] + } }, "fleet": { "rolloutGroup": "capacity-providers-development", - "receiptReporting": { "enabled": false, "intervalSeconds": 300 } + "receiptReporting": { + "enabled": false, + "intervalSeconds": 300 + } }, "secrets": { - "provider-registration": { "provider": "file", "reference": "/etc/treeseed/credentials/provider-registration" }, - "agent-codex-auth": { "provider": "file", "reference": "/etc/treeseed/credentials/agent-codex-auth" } + "provider-registration": { + "provider": "file", + "reference": "/etc/treeseed/credentials/provider-registration" + } + }, + "security": { + "sandbox": { + "required": true, + "runtime": "kata-runtime-rs-qemu", + "brokerSocket": "/run/treeseed/sandbox/broker.sock", + "modelGateway": { + "provider": "openai", + "upstreamBaseUrl": "https://api.openai.com", + "allowedModels": [ + "gpt-5.4" + ] + }, + "profiles": [ + { + "id": "read", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "unit", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "integration", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "platform", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "connected", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + } + ] + }, + "providerVolume": { + "encryption": "luks2", + "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", + "mountPath": "/var/lib/treeseed/agent", + "sizeBytes": 68719476736, + "unlock": "tpm2", + "recoveryRequired": true + }, + "applicationEncryption": { + "provider": "systemd-credential", + "activeKeyVersion": 1, + "diagnosticsKeyVersion": 1 + } } } diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 0bb255b3..0fcb448f 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "development-workstation", - "generation": 11, + "generation": 12, "host": { "id": "adrian-workstation", "role": "integrated", @@ -16,15 +16,23 @@ "defaultTrack": "development", "stable": { "metadataPollSeconds": 86400, - "maintenanceWindow": { "weekday": "sunday", "localTime": "03:00", "jitterMinutes": 20 } + "maintenanceWindow": { + "weekday": "sunday", + "localTime": "03:00", + "jitterMinutes": 20 + } }, - "development": { "pollSeconds": 60 } + "development": { + "pollSeconds": 60 + } }, "components": { "api": { "enabled": true, "track": "development", - "aliases": { "api.api.http": "api.treeseed.localhost" }, + "aliases": { + "api.api.http": "api.treeseed.localhost" + }, "configuration": { "environment": { "NODE_ENV": "production", @@ -56,7 +64,12 @@ "enabled": true, "track": "development", "connections": { - "api": { "kind": "local", "componentId": "api", "serviceId": "api", "endpointId": "http" } + "api": { + "kind": "local", + "componentId": "api", + "serviceId": "api", + "endpointId": "http" + } }, "configuration": { "environment": { @@ -70,23 +83,35 @@ "track": "development", "aliases": {}, "connections": { - "control-plane": { "kind": "local", "componentId": "api", "serviceId": "api", "endpointId": "http" } + "control-plane": { + "kind": "local", + "componentId": "api", + "serviceId": "api", + "endpointId": "http" + } }, "configuration": { "environment": { "TREESEED_PROVIDER_MODE": "development" }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 3\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v2\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles:\n - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true }\n - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true }\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities: [communication, agent-execution, research, planning]\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities: [agent-execution, engineering, verification, repository_work]\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration: { amount: 600, unit: seconds }\n capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work]\nadapters:\n - id: codex-local\n adapter: codex\n isolation: process\n module: module:codex-chat\n profile: subscription\n protocol: responses\n credentialProfiles: [codex-auth, codex-executable]\n laneIds: [communication, platform, workday]\n maxConcurrentWorkers: 4\n minimumAssignmentDuration: { amount: 600, unit: seconds }\n nativeLimits: { availableAgentSeconds: 28800 }\n capabilities: [communication, agent-execution, engineering, research, planning, acting, verification]\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } }, "treedx": { "enabled": true, "track": "development", - "aliases": { "treedx.treedx.http": "treedx.treeseed.localhost" }, + "aliases": { + "treedx.treedx.http": "treedx.treeseed.localhost" + }, "connections": { - "control-plane": { "kind": "local", "componentId": "api", "serviceId": "api", "endpointId": "http" } + "control-plane": { + "kind": "local", + "componentId": "api", + "serviceId": "api", + "endpointId": "http" + } }, "configuration": { "environment": { @@ -111,7 +136,9 @@ "lab.mailpit.web": "mail.treeseed.localhost", "lab.diagnostics.http": "lab.treeseed.localhost" }, - "configuration": { "environment": {} } + "configuration": { + "environment": {} + } }, "ai-inference": { "enabled": false, @@ -135,22 +162,101 @@ "network": { "manager": { "binding": "127.0.0.1:4790", - "aliases": ["manager.treeseed.localhost"], - "sans": ["manager.treeseed.localhost", "127.0.0.1"], + "aliases": [ + "manager.treeseed.localhost" + ], + "sans": [ + "manager.treeseed.localhost", + "127.0.0.1" + ], "trustedLanCidrs": [] } }, "fleet": { "rolloutGroup": "development-workstation", - "receiptReporting": { "enabled": false, "intervalSeconds": 300 } + "receiptReporting": { + "enabled": false, + "intervalSeconds": 300 + } }, "secrets": { - "agent-codex-auth": { "provider": "file", "reference": "/etc/treeseed/credentials/agent-codex-auth" }, - "api-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/api-postgres-password" }, - "api-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/api-database-url" }, - "api-session-secret": { "provider": "file", "reference": "/etc/treeseed/credentials/api-session-secret" }, - "api-treedx-delegation-private-key": { "provider": "file", "reference": "/etc/treeseed/credentials/api-treedx-delegation-private-key" }, - "treedx-credential-broker-assertion": { "provider": "file", "reference": "/etc/treeseed/credentials/treedx-credential-broker-assertion" }, - "github-repository-token": { "provider": "file", "reference": "/etc/treeseed/credentials/github-repository-token" } + "api-postgres-password": { + "provider": "file", + "reference": "/etc/treeseed/credentials/api-postgres-password" + }, + "api-database-url": { + "provider": "file", + "reference": "/etc/treeseed/credentials/api-database-url" + }, + "api-session-secret": { + "provider": "file", + "reference": "/etc/treeseed/credentials/api-session-secret" + }, + "api-treedx-delegation-private-key": { + "provider": "file", + "reference": "/etc/treeseed/credentials/api-treedx-delegation-private-key" + }, + "treedx-credential-broker-assertion": { + "provider": "file", + "reference": "/etc/treeseed/credentials/treedx-credential-broker-assertion" + }, + "github-repository-token": { + "provider": "file", + "reference": "/etc/treeseed/credentials/github-repository-token" + } + }, + "security": { + "sandbox": { + "required": true, + "runtime": "kata-runtime-rs-qemu", + "brokerSocket": "/run/treeseed/sandbox/broker.sock", + "modelGateway": { + "provider": "openai", + "upstreamBaseUrl": "https://api.openai.com", + "allowedModels": [ + "gpt-5.4" + ] + }, + "profiles": [ + { + "id": "read", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "unit", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "integration", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "platform", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + }, + { + "id": "connected", + "guestImage": "treeseed/agent-sandbox-guest", + "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + } + ] + }, + "providerVolume": { + "encryption": "luks2", + "backingPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/.encrypted/provider-data.luks", + "mountPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/agent", + "sizeBytes": 68719476736, + "unlock": "systemd-credential", + "recoveryRequired": true + }, + "applicationEncryption": { + "provider": "systemd-credential", + "activeKeyVersion": 1, + "diagnosticsKeyVersion": 1 + } } } diff --git a/docs/kata-assignment-security.md b/docs/kata-assignment-security.md new file mode 100644 index 00000000..af6bec4d --- /dev/null +++ b/docs/kata-assignment-security.md @@ -0,0 +1,39 @@ +# Kata assignment security + +TreeSeed capacity providers use one Kata runtime-rs QEMU/KVM microVM for each assignment attempt. The provider container receives only the root-owned broker socket. It does not receive Docker, containerd, KVM, host filesystem, or upstream model credentials. + +## Trust boundary + +The provider signs a `treeseed.sandbox-assignment/v1` manifest. The broker validates its schema, provider signing key, immutable guest digest, limits, exact identity/context digests, network policy, and lease expiry before invoking containerd in the `treeseed-sandboxes` namespace. Guest input and output use separate mounts: verified input is read-only and the bounded output directory is writable. CPU, memory, wall-time, process, disk, and output limits are carried into the guest contract; the broker enforces the host-visible limits and the guest entrypoint enforces in-VM limits. + +The broker reports unavailable unless KVM, containerd, Kata, trusted provider keys, the guest entrypoint, and the model gateway are all healthy. A v4 provider returns assignments when exact repository/TreeDX inputs have not been materialized. There is no fallback to process execution or copying Codex authentication into a guest. + +## Host commands + +Read-only operations never require confirmation: + +```text +trsd host security plan +trsd host security status +trsd host security verify +trsd host sandbox status +trsd host sandbox doctor +trsd host security recovery verify --bundle /absolute/path/recovery.bundle +``` + +Initialization and rotation require explicit confirmation and hidden passphrase input: + +```text +trsd host security initialize --recovery-bundle /absolute/path/recovery.bundle --confirm +trsd host security rotate credentials --recovery-bundle /absolute/path/current.bundle --new-recovery-bundle /absolute/path/next.bundle --confirm +``` + +The initialization operation first explains and requests a hidden model-provider service API key; subscription login state is never copied into a guest. It refuses an existing or partial volume, creates a LUKS2/Argon2id sparse image, adds independent runtime and recovery slots, uses TPM2 in production or an encrypted systemd credential on development hosts, formats ext4, copies state with metadata, retains the former plaintext directory as an offline rollback generation, and mounts with `nodev,nosuid,noexec`. The recovery bundle uses scrypt and AES-256-GCM, is written once with mode `0600`, and is only inventoried after authentication. + +## Application encryption + +`treeseed.encrypted-envelope/v1` uses a random 256-bit DEK for each record, AES-256-GCM for payload and DEK wrapping, independent nonces, canonical AAD, key generation metadata, and ciphertext digests. Provider `data://` credentials are encrypted at rest and legacy plaintext values are atomically migrated after a successful read. Protected communication trace payloads are stored only as envelopes for new writes; normal receipts never decrypt them, while authorized full diagnostics do. The database migration rejects new protected plaintext while a restartable, row-locked backfill encrypts historical rows. Manager generation backups use a separate authenticated backup KEK and persist only as `treeseed.encrypted-backup/v1`; their temporary plaintext tar exists only under `/run` and is removed before the operation returns. + +## Cutover gate + +Production capacity must remain unavailable until the security receipt is known-good, the v4 manifest contains only `microvm` adapters, exact input materialization and the model gateway are healthy, protected-diagnostic backfill is complete, and the encrypted restore drill passes. The encrypted volume and envelope formats are never rolled back to plaintext. diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index bd7c019f..b5a19690 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -44,9 +44,10 @@ if ((seed.match(/role: library/gmu) ?? []).length !== 16 || (seed.match(/library if (!/digest: sha256:[a-f0-9]{64}/u.test(seed)) fail('Canonical seed is not digest-bound.'); const provider = read('treeseed.capacity-provider.yaml'); -for (const required of ['schemaVersion: 3', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: process']) { +for (const required of ['schemaVersion: 4', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: microvm', 'runtime: kata-runtime-rs-qemu', 'defaultDenyNetwork: true']) { if (!provider.includes(required)) fail(`Unified provider manifest is missing ${required}.`); } +if (provider.includes('isolation: process') || provider.includes('isolation: worker')) fail('Unified provider manifest must not retain non-microVM execution adapters.'); for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCredentialRef:']) if (provider.includes(forbidden)) fail(`Unified provider manifest retains ${forbidden}.`); const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); @@ -58,8 +59,10 @@ const aliases = [host.network?.manager?.aliases ?? [], ...Object.values(host.com if (aliases.length !== new Set(aliases).size || aliases.some((alias) => !/^[a-z0-9.-]+\.localhost$/u.test(alias))) fail('Local aliases must be unique and remain in the .localhost namespace.'); const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => Object.keys(component.aliases ?? {})); if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+$/u.test(key))) fail('Alias overrides must use full component.service.endpoint identities.'); -if (!host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('Codex custody must use the named manager secret rather than an embedded login cache.'); -if (host.generation !== 11) fail('Development workstation must use configuration generation 11.'); +if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); +if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); +if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); +if (host.generation !== 12) fail('Development workstation must use configuration generation 12.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml index f240e115..6fdd2e15 100644 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 3 +schemaVersion: 4 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v2 + generation: local-battery-v3 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -17,11 +17,62 @@ capacity: maxCost: 100 currency: USD maxAttempts: 3 -credentialProfiles: - - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true } - - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true } - - { id: platform-github, source: process-environment, reference: TREESEED_GITHUB_TOKEN, required: false } - - { id: platform-cloudflare, source: process-environment, reference: TREESEED_CLOUDFLARE_API_TOKEN, required: false } +credentialProfiles: [] +sandbox: + required: true + brokerSocket: /run/treeseed/sandbox/broker.sock + runtime: kata-runtime-rs-qemu + profiles: + - id: read + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 2 + memoryBytes: 4294967296 + diskBytes: 8589934592 + processLimit: 512 + outputBytes: 67108864 + - id: unit + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 + - id: integration + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 12884901888 + diskBytes: 25769803776 + processLimit: 2048 + outputBytes: 268435456 + - id: platform + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 8 + memoryBytes: 17179869184 + diskBytes: 34359738368 + processLimit: 4096 + outputBytes: 536870912 + - id: connected + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 lanes: - id: communication purpose: communication @@ -33,18 +84,26 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 120 - capabilities: [communication, agent-execution, research, planning] + capabilities: + - communication + - agent-execution + - research + - planning - id: platform purpose: platform priority: 70 reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 2 + maxConcurrentWorkers: 4 borrowWhenIdle: true lendWhenIdle: true reclaimPolicy: admission - queueLimit: 25 + queueLimit: 100 timeoutSeconds: 900 - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + capabilities: + - agent-execution + - engineering + - verification + - repository_work - id: workday purpose: workday priority: 50 @@ -55,29 +114,51 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 900 - minimumAssignmentDuration: { amount: 600, unit: seconds } - capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work] + minimumAssignmentDuration: + amount: 600 + unit: seconds + capabilities: + - agent-execution + - engineering + - research + - planning + - acting + - verification + - repository_work adapters: - id: codex-local adapter: codex - isolation: process + isolation: microvm module: module:codex-chat - profile: subscription + profile: api protocol: responses - credentialProfiles: [codex-auth, codex-executable] - laneIds: [communication] - maxConcurrentWorkers: 2 - minimumAssignmentDuration: { amount: 600, unit: seconds } - nativeLimits: { availableAgentSeconds: 28800 } - capabilities: [communication, agent-execution] - - id: platform-local - adapter: platform-operation - isolation: process - credentialProfiles: [platform-github, platform-cloudflare] - laneIds: [platform] - maxConcurrentWorkers: 2 - nativeLimits: { availableAgentSeconds: 14400 } - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + model: + model: gpt-5.4 + credentialProfiles: [] + laneIds: + - communication + - platform + - workday + sandboxProfileIds: + - read + - unit + - integration + - platform + - connected + maxConcurrentWorkers: 4 + minimumAssignmentDuration: + amount: 600 + unit: seconds + nativeLimits: + availableAgentSeconds: 28800 + capabilities: + - communication + - agent-execution + - engineering + - research + - planning + - acting + - verification connections: [] metadata: custody: local-only diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml index f240e115..6fdd2e15 100644 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 3 +schemaVersion: 4 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v2 + generation: local-battery-v3 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -17,11 +17,62 @@ capacity: maxCost: 100 currency: USD maxAttempts: 3 -credentialProfiles: - - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true } - - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true } - - { id: platform-github, source: process-environment, reference: TREESEED_GITHUB_TOKEN, required: false } - - { id: platform-cloudflare, source: process-environment, reference: TREESEED_CLOUDFLARE_API_TOKEN, required: false } +credentialProfiles: [] +sandbox: + required: true + brokerSocket: /run/treeseed/sandbox/broker.sock + runtime: kata-runtime-rs-qemu + profiles: + - id: read + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 2 + memoryBytes: 4294967296 + diskBytes: 8589934592 + processLimit: 512 + outputBytes: 67108864 + - id: unit + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 + - id: integration + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 12884901888 + diskBytes: 25769803776 + processLimit: 2048 + outputBytes: 268435456 + - id: platform + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 8 + memoryBytes: 17179869184 + diskBytes: 34359738368 + processLimit: 4096 + outputBytes: 536870912 + - id: connected + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 lanes: - id: communication purpose: communication @@ -33,18 +84,26 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 120 - capabilities: [communication, agent-execution, research, planning] + capabilities: + - communication + - agent-execution + - research + - planning - id: platform purpose: platform priority: 70 reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 2 + maxConcurrentWorkers: 4 borrowWhenIdle: true lendWhenIdle: true reclaimPolicy: admission - queueLimit: 25 + queueLimit: 100 timeoutSeconds: 900 - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + capabilities: + - agent-execution + - engineering + - verification + - repository_work - id: workday purpose: workday priority: 50 @@ -55,29 +114,51 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 900 - minimumAssignmentDuration: { amount: 600, unit: seconds } - capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work] + minimumAssignmentDuration: + amount: 600 + unit: seconds + capabilities: + - agent-execution + - engineering + - research + - planning + - acting + - verification + - repository_work adapters: - id: codex-local adapter: codex - isolation: process + isolation: microvm module: module:codex-chat - profile: subscription + profile: api protocol: responses - credentialProfiles: [codex-auth, codex-executable] - laneIds: [communication] - maxConcurrentWorkers: 2 - minimumAssignmentDuration: { amount: 600, unit: seconds } - nativeLimits: { availableAgentSeconds: 28800 } - capabilities: [communication, agent-execution] - - id: platform-local - adapter: platform-operation - isolation: process - credentialProfiles: [platform-github, platform-cloudflare] - laneIds: [platform] - maxConcurrentWorkers: 2 - nativeLimits: { availableAgentSeconds: 14400 } - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + model: + model: gpt-5.4 + credentialProfiles: [] + laneIds: + - communication + - platform + - workday + sandboxProfileIds: + - read + - unit + - integration + - platform + - connected + maxConcurrentWorkers: 4 + minimumAssignmentDuration: + amount: 600 + unit: seconds + nativeLimits: + availableAgentSeconds: 28800 + capabilities: + - communication + - agent-execution + - engineering + - research + - planning + - acting + - verification connections: [] metadata: custody: local-only diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml index f240e115..6fdd2e15 100644 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 3 +schemaVersion: 4 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v2 + generation: local-battery-v3 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -17,11 +17,62 @@ capacity: maxCost: 100 currency: USD maxAttempts: 3 -credentialProfiles: - - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true } - - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true } - - { id: platform-github, source: process-environment, reference: TREESEED_GITHUB_TOKEN, required: false } - - { id: platform-cloudflare, source: process-environment, reference: TREESEED_CLOUDFLARE_API_TOKEN, required: false } +credentialProfiles: [] +sandbox: + required: true + brokerSocket: /run/treeseed/sandbox/broker.sock + runtime: kata-runtime-rs-qemu + profiles: + - id: read + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 2 + memoryBytes: 4294967296 + diskBytes: 8589934592 + processLimit: 512 + outputBytes: 67108864 + - id: unit + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 + - id: integration + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 12884901888 + diskBytes: 25769803776 + processLimit: 2048 + outputBytes: 268435456 + - id: platform + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 8 + memoryBytes: 17179869184 + diskBytes: 34359738368 + processLimit: 4096 + outputBytes: 536870912 + - id: connected + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 lanes: - id: communication purpose: communication @@ -33,18 +84,26 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 120 - capabilities: [communication, agent-execution, research, planning] + capabilities: + - communication + - agent-execution + - research + - planning - id: platform purpose: platform priority: 70 reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 2 + maxConcurrentWorkers: 4 borrowWhenIdle: true lendWhenIdle: true reclaimPolicy: admission - queueLimit: 25 + queueLimit: 100 timeoutSeconds: 900 - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + capabilities: + - agent-execution + - engineering + - verification + - repository_work - id: workday purpose: workday priority: 50 @@ -55,29 +114,51 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 900 - minimumAssignmentDuration: { amount: 600, unit: seconds } - capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work] + minimumAssignmentDuration: + amount: 600 + unit: seconds + capabilities: + - agent-execution + - engineering + - research + - planning + - acting + - verification + - repository_work adapters: - id: codex-local adapter: codex - isolation: process + isolation: microvm module: module:codex-chat - profile: subscription + profile: api protocol: responses - credentialProfiles: [codex-auth, codex-executable] - laneIds: [communication] - maxConcurrentWorkers: 2 - minimumAssignmentDuration: { amount: 600, unit: seconds } - nativeLimits: { availableAgentSeconds: 28800 } - capabilities: [communication, agent-execution] - - id: platform-local - adapter: platform-operation - isolation: process - credentialProfiles: [platform-github, platform-cloudflare] - laneIds: [platform] - maxConcurrentWorkers: 2 - nativeLimits: { availableAgentSeconds: 14400 } - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + model: + model: gpt-5.4 + credentialProfiles: [] + laneIds: + - communication + - platform + - workday + sandboxProfileIds: + - read + - unit + - integration + - platform + - connected + maxConcurrentWorkers: 4 + minimumAssignmentDuration: + amount: 600 + unit: seconds + nativeLimits: + availableAgentSeconds: 28800 + capabilities: + - communication + - agent-execution + - engineering + - research + - planning + - acting + - verification connections: [] metadata: custody: local-only diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml index f240e115..6fdd2e15 100644 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 3 +schemaVersion: 4 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v2 + generation: local-battery-v3 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -17,11 +17,62 @@ capacity: maxCost: 100 currency: USD maxAttempts: 3 -credentialProfiles: - - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true } - - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true } - - { id: platform-github, source: process-environment, reference: TREESEED_GITHUB_TOKEN, required: false } - - { id: platform-cloudflare, source: process-environment, reference: TREESEED_CLOUDFLARE_API_TOKEN, required: false } +credentialProfiles: [] +sandbox: + required: true + brokerSocket: /run/treeseed/sandbox/broker.sock + runtime: kata-runtime-rs-qemu + profiles: + - id: read + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 2 + memoryBytes: 4294967296 + diskBytes: 8589934592 + processLimit: 512 + outputBytes: 67108864 + - id: unit + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 + - id: integration + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 12884901888 + diskBytes: 25769803776 + processLimit: 2048 + outputBytes: 268435456 + - id: platform + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 8 + memoryBytes: 17179869184 + diskBytes: 34359738368 + processLimit: 4096 + outputBytes: 536870912 + - id: connected + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 lanes: - id: communication purpose: communication @@ -33,18 +84,26 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 120 - capabilities: [communication, agent-execution, research, planning] + capabilities: + - communication + - agent-execution + - research + - planning - id: platform purpose: platform priority: 70 reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 2 + maxConcurrentWorkers: 4 borrowWhenIdle: true lendWhenIdle: true reclaimPolicy: admission - queueLimit: 25 + queueLimit: 100 timeoutSeconds: 900 - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + capabilities: + - agent-execution + - engineering + - verification + - repository_work - id: workday purpose: workday priority: 50 @@ -55,29 +114,51 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 900 - minimumAssignmentDuration: { amount: 600, unit: seconds } - capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work] + minimumAssignmentDuration: + amount: 600 + unit: seconds + capabilities: + - agent-execution + - engineering + - research + - planning + - acting + - verification + - repository_work adapters: - id: codex-local adapter: codex - isolation: process + isolation: microvm module: module:codex-chat - profile: subscription + profile: api protocol: responses - credentialProfiles: [codex-auth, codex-executable] - laneIds: [communication] - maxConcurrentWorkers: 2 - minimumAssignmentDuration: { amount: 600, unit: seconds } - nativeLimits: { availableAgentSeconds: 28800 } - capabilities: [communication, agent-execution] - - id: platform-local - adapter: platform-operation - isolation: process - credentialProfiles: [platform-github, platform-cloudflare] - laneIds: [platform] - maxConcurrentWorkers: 2 - nativeLimits: { availableAgentSeconds: 14400 } - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + model: + model: gpt-5.4 + credentialProfiles: [] + laneIds: + - communication + - platform + - workday + sandboxProfileIds: + - read + - unit + - integration + - platform + - connected + maxConcurrentWorkers: 4 + minimumAssignmentDuration: + amount: 600 + unit: seconds + nativeLimits: + availableAgentSeconds: 28800 + capabilities: + - communication + - agent-execution + - engineering + - research + - planning + - acting + - verification connections: [] metadata: custody: local-only diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index f240e115..6fdd2e15 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 3 +schemaVersion: 4 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v2 + generation: local-battery-v3 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -17,11 +17,62 @@ capacity: maxCost: 100 currency: USD maxAttempts: 3 -credentialProfiles: - - { id: codex-auth, source: process-environment, reference: TREESEED_CODEX_AUTH_FILE, required: true } - - { id: codex-executable, source: process-environment, reference: TREESEED_CODEX_EXECUTABLE, required: true } - - { id: platform-github, source: process-environment, reference: TREESEED_GITHUB_TOKEN, required: false } - - { id: platform-cloudflare, source: process-environment, reference: TREESEED_CLOUDFLARE_API_TOKEN, required: false } +credentialProfiles: [] +sandbox: + required: true + brokerSocket: /run/treeseed/sandbox/broker.sock + runtime: kata-runtime-rs-qemu + profiles: + - id: read + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 2 + memoryBytes: 4294967296 + diskBytes: 8589934592 + processLimit: 512 + outputBytes: 67108864 + - id: unit + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 + - id: integration + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 12884901888 + diskBytes: 25769803776 + processLimit: 2048 + outputBytes: 268435456 + - id: platform + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 8 + memoryBytes: 17179869184 + diskBytes: 34359738368 + processLimit: 4096 + outputBytes: 536870912 + - id: connected + guestImage: treeseed/agent-sandbox-guest + guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + defaultDenyNetwork: true + resources: + cpuCores: 4 + memoryBytes: 8589934592 + diskBytes: 17179869184 + processLimit: 1024 + outputBytes: 134217728 lanes: - id: communication purpose: communication @@ -33,18 +84,26 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 120 - capabilities: [communication, agent-execution, research, planning] + capabilities: + - communication + - agent-execution + - research + - planning - id: platform purpose: platform priority: 70 reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 2 + maxConcurrentWorkers: 4 borrowWhenIdle: true lendWhenIdle: true reclaimPolicy: admission - queueLimit: 25 + queueLimit: 100 timeoutSeconds: 900 - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + capabilities: + - agent-execution + - engineering + - verification + - repository_work - id: workday purpose: workday priority: 50 @@ -55,29 +114,51 @@ lanes: reclaimPolicy: admission queueLimit: 100 timeoutSeconds: 900 - minimumAssignmentDuration: { amount: 600, unit: seconds } - capabilities: [agent-execution, engineering, research, planning, acting, verification, repository_work] + minimumAssignmentDuration: + amount: 600 + unit: seconds + capabilities: + - agent-execution + - engineering + - research + - planning + - acting + - verification + - repository_work adapters: - id: codex-local adapter: codex - isolation: process + isolation: microvm module: module:codex-chat - profile: subscription + profile: api protocol: responses - credentialProfiles: [codex-auth, codex-executable] - laneIds: [communication] - maxConcurrentWorkers: 2 - minimumAssignmentDuration: { amount: 600, unit: seconds } - nativeLimits: { availableAgentSeconds: 28800 } - capabilities: [communication, agent-execution] - - id: platform-local - adapter: platform-operation - isolation: process - credentialProfiles: [platform-github, platform-cloudflare] - laneIds: [platform] - maxConcurrentWorkers: 2 - nativeLimits: { availableAgentSeconds: 14400 } - capabilities: [platform_operation, infrastructure_reconciliation, repository_reconciliation] + model: + model: gpt-5.4 + credentialProfiles: [] + laneIds: + - communication + - platform + - workday + sandboxProfileIds: + - read + - unit + - integration + - platform + - connected + maxConcurrentWorkers: 4 + minimumAssignmentDuration: + amount: 600 + unit: seconds + nativeLimits: + availableAgentSeconds: 28800 + capabilities: + - communication + - agent-execution + - engineering + - research + - planning + - acting + - verification connections: [] metadata: custody: local-only From eb83cdd3cd72207c02991aa57453ea7d49f5ad37 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 11:33:27 -0400 Subject: [PATCH 072/501] fix(security): rightsize development provider volume --- deployment/host-configs/capacity-provider-development.json | 2 +- deployment/host-configs/development-workstation.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index abc6bc63..691d6e9d 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -149,7 +149,7 @@ "encryption": "luks2", "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", "mountPath": "/var/lib/treeseed/agent", - "sizeBytes": 68719476736, + "sizeBytes": 17179869184, "unlock": "tpm2", "recoveryRequired": true }, diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 0fcb448f..8887d488 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -249,7 +249,7 @@ "encryption": "luks2", "backingPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/.encrypted/provider-data.luks", "mountPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/agent", - "sizeBytes": 68719476736, + "sizeBytes": 17179869184, "unlock": "systemd-credential", "recoveryRequired": true }, From 03d7b0be7ebb903b99d1d8fb0768702eadf1c6e4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 11:40:25 -0400 Subject: [PATCH 073/501] chore(security): freeze generation 105 candidate --- .../integration-releases/development.json | 271 ++++++++++++++++-- 1 file changed, 247 insertions(+), 24 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 620f72f8..c15476e9 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,33 +1,256 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc134", - "generation": 104, + "release": "0.1.0~rc135", + "generation": 105, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d6f479c675f20984553d2253897404cfd41772bb" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c5536eec37b1551eb79c0673cc2f886b24ccfec5", "tag": "0.1.0-rc.134" }, + "platform": { + "repository": "treeseed-ai/platform", + "commit": "08e4496f1800104935c661f025d94d9adba1ba6a" + }, + "deployment": { + "repository": "treeseed-ai/deployment", + "commit": "d453e005a275abf38933baef41041dc2e022ce16", + "tag": "0.1.0-rc.135" + }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.54", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.54.tgz", "sha256": "6329eb3958c5a765ad0084885b9f21873d61ba045b36a8653963c0da63e9bdb4" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.50", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/treeseed-api-0.8.0-rc.50.tgz", "sha256": "24920726339e17625e088dd91a0dff4f97eedc240ea840c0c289d27a6ce598b1" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.10", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" } }, - { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.6", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, - { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.30", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.30.tgz", "sha256": "a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" } }, - { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, - { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + { + "id": "sdk", + "packageName": "@treeseed/sdk", + "version": "0.13.0-rc.55", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.55.tgz", + "sha256": "0f9ea03c3c5a6d8061268e64b7bb08599c2648468ebf30c0930a618177d068ee" + } + }, + { + "id": "api", + "packageName": "@treeseed/api", + "version": "0.8.0-rc.51", + "artifact": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/treeseed-api-0.8.0-rc.51.tgz", + "sha256": "b203338718cca6ef86e4fde7f905d5c5156342bd471914f9d6bee556964057ce" + } + }, + { + "id": "ui", + "packageName": "@treeseed/ui", + "version": "0.12.18-rc.10", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", + "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" + } + }, + { + "id": "core", + "packageName": "@treeseed/core", + "version": "0.12.60-rc.6", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", + "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" + } + }, + { + "id": "admin", + "packageName": "@treeseed/admin", + "version": "0.12.59-rc.22", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", + "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" + } + }, + { + "id": "reviewer", + "packageName": "@treeseed/reviewer", + "version": "0.1.0-rc.13", + "artifact": { + "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", + "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" + } + }, + { + "id": "playwright-core", + "packageName": "playwright-core", + "version": "1.60.0", + "artifact": { + "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" + } + }, + { + "id": "cli", + "packageName": "@treeseed/cli", + "version": "0.13.0-rc.31", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.31.tgz", + "sha256": "3e1e1effaff77be491410f0f25511438136041d0aca023ada9ac1fbf48228291" + } + }, + { + "id": "treedx", + "packageName": "@treeseed/treedx", + "version": "0.3.0-rc.11", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", + "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" + } + }, + { + "id": "yaml", + "packageName": "yaml", + "version": "2.9.0", + "artifact": { + "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" + } + }, + { + "id": "zod", + "packageName": "zod", + "version": "3.25.76", + "artifact": { + "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" + } + } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc50-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/component-release.json", "sha256": "bc6484ce743779c8d5855358e2f7a97ecc777b0325f93b7907aaa1ddc3f137fe" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.50/compose.yml", "sha256": "526bf552a5ff8f948bcb77f0937d9638ce9158c94cbbeaf0d691cbd4bab3ac12" } }] }, - { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc25-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/component-release.json", "sha256": "5bc1a969793e8c2fe422ca37e3bb8d2f706edf48b053a09c0623b16aa321e1d5" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.25/compose.yml", "sha256": "60f132503057463ffdf042cfde912c9c629bb34e17fca3d74bd6a052d1e975dd" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc11-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" } }] }, - { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } + { + "componentId": "api", + "release": "0.8.0~rc51-1", + "manifest": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/component-release.json", + "sha256": "39748665aaa3076f4cad0b9bcbd4d801283632d3e4705f4c6fd9181397b4f4ab" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/compose.yml", + "sha256": "d4ad30e718e0b97613782abf51ff51039443373a5749485298f627151bf1c9fd" + } + } + ] + }, + { + "componentId": "admin", + "release": "0.12.59~rc22-1", + "manifest": { + "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", + "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", + "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" + } + } + ] + }, + { + "componentId": "agent", + "release": "0.13.0~rc26-1", + "manifest": { + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.26/component-release.json", + "sha256": "ef351d2017c3c4a517c85c24606f27a5dfdd4c604843aef410e558ce6251f752" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.26/compose.yml", + "sha256": "ee4cfe926322d215f09ac94c4e45fe59ad52a7eed363ffc86a28d4a8c7ab5aef" + } + } + ] + }, + { + "componentId": "treedx", + "release": "0.3.0~rc11-1", + "manifest": { + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", + "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", + "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" + } + } + ] + }, + { + "componentId": "lab", + "release": "0.1.0~rc34-1", + "manifest": { + "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", + "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", + "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" + } + } + ] + }, + { + "componentId": "ai-inference", + "release": "0.11.0~rc19-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", + "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" + }, + "files": [ + { + "path": "ai-inference-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", + "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" + } + } + ] + }, + { + "componentId": "ai-training", + "release": "0.11.0~rc19-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", + "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" + }, + "files": [ + { + "path": "ai-training-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", + "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" + } + } + ] + }, + { + "componentId": "ai-lab", + "release": "0.11.0~rc19-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", + "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" + }, + "files": [ + { + "path": "ai-lab-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", + "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" + } + } + ] + } ], - "createdAt": "2026-08-29T13:09:37.000Z" + "createdAt": "2026-08-29T15:45:00.000Z" } From 5f6198e0f8eb7cdb689cb1126f8b54d7557ed678 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 11:58:54 -0400 Subject: [PATCH 074/501] chore(cli): freeze runtime generation 106 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index c15476e9..85a82faa 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,12 +1,12 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc135", - "generation": 105, + "generation": 106, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "08e4496f1800104935c661f025d94d9adba1ba6a" + "commit": "f13879af796b4884969546610a28f6f708ad34df" }, "deployment": { "repository": "treeseed-ai/deployment", @@ -80,10 +80,10 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.31", + "version": "0.13.0-rc.32", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.31.tgz", - "sha256": "3e1e1effaff77be491410f0f25511438136041d0aca023ada9ac1fbf48228291" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.32.tgz", + "sha256": "1600a3310bb02f66e28a2fa56a716d3b56d2d4dd59f9ffbd2d3701e0fc476f6e" } }, { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-29T15:45:00.000Z" + "createdAt": "2026-08-29T15:57:00.000Z" } From 4eab166581c507e6ea632f2d965ae418174bba26 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 12:12:30 -0400 Subject: [PATCH 075/501] chore(deployment): freeze generation 107 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 85a82faa..115ebcef 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc135", - "generation": 106, + "release": "0.1.0~rc136", + "generation": 107, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "f13879af796b4884969546610a28f6f708ad34df" + "commit": "6fdbb21abb71d5db5cdbd0b9af104b6a76688816" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "d453e005a275abf38933baef41041dc2e022ce16", - "tag": "0.1.0-rc.135" + "commit": "84380acf61350e07f9c4d966292350e9bf03a13b", + "tag": "0.1.0-rc.136" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-29T15:57:00.000Z" + "createdAt": "2026-08-29T16:12:00.000Z" } From 335c312416f402da2a9b1349088015e65595bb59 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 16:55:59 -0400 Subject: [PATCH 076/501] chore(release): select deployment rc137 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 115ebcef..86677bc2 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc136", - "generation": 107, + "release": "0.1.0~rc137", + "generation": 108, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "6fdbb21abb71d5db5cdbd0b9af104b6a76688816" + "commit": "4666d167f7ae1792eb0da47da3135e69a6acc668" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "84380acf61350e07f9c4d966292350e9bf03a13b", - "tag": "0.1.0-rc.136" + "commit": "ecf316c6fa4b275df5eb58e9fc834e6f80a32fc7", + "tag": "0.1.0-rc.137" }, "hostPayloads": [ { From e734d5863d8b384118b1f72c270c052b299c1e88 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 17:39:14 -0400 Subject: [PATCH 077/501] chore(release): select deployment rc138 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 86677bc2..0d104dc5 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc137", - "generation": 108, + "release": "0.1.0~rc138", + "generation": 109, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "4666d167f7ae1792eb0da47da3135e69a6acc668" + "commit": "cf4fd5da4a79682f8936a56b94c6679b7aa58a29" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "ecf316c6fa4b275df5eb58e9fc834e6f80a32fc7", - "tag": "0.1.0-rc.137" + "commit": "5baf19a186db9f0ad1e1c5796773af07e6c8dfc2", + "tag": "0.1.0-rc.138" }, "hostPayloads": [ { From 131ba787c19876998dbc31c5a743f40b7fb8be2d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 17:55:19 -0400 Subject: [PATCH 078/501] chore(release): select deployment rc139 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0d104dc5..0fcbc9b8 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc138", - "generation": 109, + "release": "0.1.0~rc139", + "generation": 110, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "cf4fd5da4a79682f8936a56b94c6679b7aa58a29" + "commit": "3aa85201a2353c5e8251756f49da1743b1caaadd" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "5baf19a186db9f0ad1e1c5796773af07e6c8dfc2", - "tag": "0.1.0-rc.138" + "commit": "2efe30cb19c27ba362450da3b677fe03895298c2", + "tag": "0.1.0-rc.139" }, "hostPayloads": [ { From eb75afdd3f0e1d9f0d582019cbedcc4864742c89 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 18:21:13 -0400 Subject: [PATCH 079/501] chore(release): select deployment rc140 --- deployment/host-configs/development-workstation.json | 2 +- deployment/integration-releases/development.json | 10 +++++----- scripts/verify-platform.mjs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 8887d488..b1404697 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "development-workstation", - "generation": 12, + "generation": 20, "host": { "id": "adrian-workstation", "role": "integrated", diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0fcbc9b8..f1aad0b5 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc139", - "generation": 110, + "release": "0.1.0~rc140", + "generation": 111, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "3aa85201a2353c5e8251756f49da1743b1caaadd" + "commit": "81050d5e186ed144b44da4c07323136f6e3c2ac1" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "2efe30cb19c27ba362450da3b677fe03895298c2", - "tag": "0.1.0-rc.139" + "commit": "99356999a206ad66d319a7d2939aca98d12b2424", + "tag": "0.1.0-rc.140" }, "hostPayloads": [ { diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index b5a19690..08b6e77f 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -62,7 +62,7 @@ if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0 if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); -if (host.generation !== 12) fail('Development workstation must use configuration generation 12.'); +if (host.generation !== 20) fail('Development workstation must use configuration generation 20.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); From d5755f534cd450c17f0e5c377b4b2cc9ada45ba6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 20:33:45 -0400 Subject: [PATCH 080/501] feat: bind capability providers to official sandbox lineage (#239) --- .../catalogs/sandbox-environment-roots.json | 21 +++++++++++++++++ .../capacity-provider-development.json | 22 +++++++++--------- .../host-configs/development-workstation.json | 22 +++++++++--------- docs/kata-assignment-security.md | 8 +++++-- .../template/treeseed.capacity-provider.yaml | 23 +++++++++++-------- .../template/treeseed.capacity-provider.yaml | 23 +++++++++++-------- .../template/treeseed.capacity-provider.yaml | 23 +++++++++++-------- .../template/treeseed.capacity-provider.yaml | 23 +++++++++++-------- treeseed.capacity-provider.yaml | 23 +++++++++++-------- 9 files changed, 114 insertions(+), 74 deletions(-) create mode 100644 deployment/catalogs/sandbox-environment-roots.json diff --git a/deployment/catalogs/sandbox-environment-roots.json b/deployment/catalogs/sandbox-environment-roots.json new file mode 100644 index 00000000..29ffc2b5 --- /dev/null +++ b/deployment/catalogs/sandbox-environment-roots.json @@ -0,0 +1,21 @@ +{ + "schemaVersion": "treeseed.sandbox-environment-roots/v1", + "generation": 1, + "distribution": "ubuntu", + "release": "24.04", + "supportChannel": "lts", + "roots": [ + { + "id": "ubuntu-lts-amd64", + "architecture": "amd64", + "reference": "docker.io/library/ubuntu:24.04", + "digest": "sha256:1e0a86e57d247923571b75e0aaf48a1449cf8c543d51fb3e07a4a7d7bfa79316" + }, + { + "id": "ubuntu-lts-arm64", + "architecture": "arm64", + "reference": "docker.io/library/ubuntu:24.04", + "digest": "sha256:95fa486768020359141f1318720f43e7982ef926c792891d984aef9aaf05e7ea" + } + ] +} diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index 691d6e9d..324f0dad 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -77,7 +77,7 @@ } }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } } @@ -120,28 +120,28 @@ "profiles": [ { "id": "read", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "unit", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "integration", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "platform", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "connected", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" } ] }, diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index b1404697..7208f970 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -95,7 +95,7 @@ "TREESEED_PROVIDER_MODE": "development" }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/agent-sandbox-guest\n guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } }, @@ -220,28 +220,28 @@ "profiles": [ { "id": "read", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "unit", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "integration", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "platform", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" }, { "id": "connected", - "guestImage": "treeseed/agent-sandbox-guest", - "guestImageDigest": "sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544" + "guestImage": "treeseed/sandbox-codex", + "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" } ] }, diff --git a/docs/kata-assignment-security.md b/docs/kata-assignment-security.md index af6bec4d..e81cb73b 100644 --- a/docs/kata-assignment-security.md +++ b/docs/kata-assignment-security.md @@ -6,7 +6,9 @@ TreeSeed capacity providers use one Kata runtime-rs QEMU/KVM microVM for each as The provider signs a `treeseed.sandbox-assignment/v1` manifest. The broker validates its schema, provider signing key, immutable guest digest, limits, exact identity/context digests, network policy, and lease expiry before invoking containerd in the `treeseed-sandboxes` namespace. Guest input and output use separate mounts: verified input is read-only and the bounded output directory is writable. CPU, memory, wall-time, process, disk, and output limits are carried into the guest contract; the broker enforces the host-visible limits and the guest entrypoint enforces in-VM limits. -The broker reports unavailable unless KVM, containerd, Kata, trusted provider keys, the guest entrypoint, and the model gateway are all healthy. A v4 provider returns assignments when exact repository/TreeDX inputs have not been materialized. There is no fallback to process execution or copying Codex authentication into a guest. +The broker reports unavailable unless KVM, containerd, Kata, trusted provider keys, the guest entrypoint, and configured model authentication are all healthy. A v4 provider returns assignments when exact repository/TreeDX inputs have not been materialized. There is no fallback to process execution. + +Activity profiles request standardized capability contracts, never execution adapters, sandbox profiles, or image identities. The allocator matches those demands against public provider offers. Only after selection does the capacity provider privately map its opaque offer to an adapter, sandbox profile, and immutable image digest. The global trust catalog covers TreeSeed base and official images; provider-owned images remain private but must prove signed lineage from `treeseed/sandbox-base` or an approved descendant. Image identity is recorded in the post-selection environment receipt, not used as a market-matching input. ## Host commands @@ -28,7 +30,9 @@ trsd host security initialize --recovery-bundle /absolute/path/recovery.bundle - trsd host security rotate credentials --recovery-bundle /absolute/path/current.bundle --new-recovery-bundle /absolute/path/next.bundle --confirm ``` -The initialization operation first explains and requests a hidden model-provider service API key; subscription login state is never copied into a guest. It refuses an existing or partial volume, creates a LUKS2/Argon2id sparse image, adds independent runtime and recovery slots, uses TPM2 in production or an encrypted systemd credential on development hosts, formats ext4, copies state with metadata, retains the former plaintext directory as an offline rollback generation, and mounts with `nodev,nosuid,noexec`. The recovery bundle uses scrypt and AES-256-GCM, is written once with mode `0600`, and is only inventoried after authentication. +Initialization uses an existing `CODEX_HOME/auth.json` or `~/.codex/auth.json` ChatGPT subscription login when available and otherwise requests a hidden model-provider service API key. Either credential is encrypted into systemd credential custody. Subscription state is copied read-only by the root broker into one Kata assignment at a time and removed with the VM; Codex also runs in `workspace-write` sandbox mode over only the assignment's private project copy. Browser, apps, web search, and multi-agent capabilities are disabled, and collected output is rejected if it contains known token fingerprints. API-key mode continues to use the one-use host model gateway. + +The operation refuses an existing or partial volume, creates a LUKS2/Argon2id sparse image, adds independent runtime and recovery slots, uses TPM2 in production or an encrypted systemd credential on development hosts, formats ext4, copies state with metadata, retains the former plaintext directory as an offline rollback generation, and mounts with `nodev,nosuid,noexec`. The recovery bundle uses scrypt and AES-256-GCM, is written once with mode `0600`, and is only inventoried after authentication. ## Application encryption diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml index 6fdd2e15..2e4f1430 100644 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml @@ -24,8 +24,8 @@ sandbox: runtime: kata-runtime-rs-qemu profiles: - id: read - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 2 @@ -34,8 +34,8 @@ sandbox: processLimit: 512 outputBytes: 67108864 - id: unit - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -44,8 +44,8 @@ sandbox: processLimit: 1024 outputBytes: 134217728 - id: integration - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -54,8 +54,8 @@ sandbox: processLimit: 2048 outputBytes: 268435456 - id: platform - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 8 @@ -64,8 +64,8 @@ sandbox: processLimit: 4096 outputBytes: 536870912 - id: connected - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -145,6 +145,9 @@ adapters: - integration - platform - connected + defaultSandboxProfiles: + conversation: read + execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml index 6fdd2e15..2e4f1430 100644 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml @@ -24,8 +24,8 @@ sandbox: runtime: kata-runtime-rs-qemu profiles: - id: read - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 2 @@ -34,8 +34,8 @@ sandbox: processLimit: 512 outputBytes: 67108864 - id: unit - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -44,8 +44,8 @@ sandbox: processLimit: 1024 outputBytes: 134217728 - id: integration - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -54,8 +54,8 @@ sandbox: processLimit: 2048 outputBytes: 268435456 - id: platform - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 8 @@ -64,8 +64,8 @@ sandbox: processLimit: 4096 outputBytes: 536870912 - id: connected - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -145,6 +145,9 @@ adapters: - integration - platform - connected + defaultSandboxProfiles: + conversation: read + execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml index 6fdd2e15..2e4f1430 100644 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml @@ -24,8 +24,8 @@ sandbox: runtime: kata-runtime-rs-qemu profiles: - id: read - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 2 @@ -34,8 +34,8 @@ sandbox: processLimit: 512 outputBytes: 67108864 - id: unit - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -44,8 +44,8 @@ sandbox: processLimit: 1024 outputBytes: 134217728 - id: integration - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -54,8 +54,8 @@ sandbox: processLimit: 2048 outputBytes: 268435456 - id: platform - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 8 @@ -64,8 +64,8 @@ sandbox: processLimit: 4096 outputBytes: 536870912 - id: connected - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -145,6 +145,9 @@ adapters: - integration - platform - connected + defaultSandboxProfiles: + conversation: read + execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml index 6fdd2e15..2e4f1430 100644 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml @@ -24,8 +24,8 @@ sandbox: runtime: kata-runtime-rs-qemu profiles: - id: read - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 2 @@ -34,8 +34,8 @@ sandbox: processLimit: 512 outputBytes: 67108864 - id: unit - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -44,8 +44,8 @@ sandbox: processLimit: 1024 outputBytes: 134217728 - id: integration - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -54,8 +54,8 @@ sandbox: processLimit: 2048 outputBytes: 268435456 - id: platform - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 8 @@ -64,8 +64,8 @@ sandbox: processLimit: 4096 outputBytes: 536870912 - id: connected - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -145,6 +145,9 @@ adapters: - integration - platform - connected + defaultSandboxProfiles: + conversation: read + execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index 6fdd2e15..2e4f1430 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -24,8 +24,8 @@ sandbox: runtime: kata-runtime-rs-qemu profiles: - id: read - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 2 @@ -34,8 +34,8 @@ sandbox: processLimit: 512 outputBytes: 67108864 - id: unit - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -44,8 +44,8 @@ sandbox: processLimit: 1024 outputBytes: 134217728 - id: integration - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -54,8 +54,8 @@ sandbox: processLimit: 2048 outputBytes: 268435456 - id: platform - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 8 @@ -64,8 +64,8 @@ sandbox: processLimit: 4096 outputBytes: 536870912 - id: connected - guestImage: treeseed/agent-sandbox-guest - guestImageDigest: sha256:9a8c0884b4be25fac33af7b68e810ea78c2f51a32337eb9fa885ee0565ab1544 + guestImage: treeseed/sandbox-codex + guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f defaultDenyNetwork: true resources: cpuCores: 4 @@ -145,6 +145,9 @@ adapters: - integration - platform - connected + defaultSandboxProfiles: + conversation: read + execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 From d138b0596b48a50d96a47fb98ef5f9f4e282e9b8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 20:35:34 -0400 Subject: [PATCH 081/501] release: select development integration generation 112 (#240) --- .../integration-releases/development.json | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f1aad0b5..97e4cfcf 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,35 +1,35 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc140", - "generation": 111, + "release": "0.1.0~rc141", + "generation": 112, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "81050d5e186ed144b44da4c07323136f6e3c2ac1" + "commit": "d5755f534cd450c17f0e5c377b4b2cc9ada45ba6" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "99356999a206ad66d319a7d2939aca98d12b2424", - "tag": "0.1.0-rc.140" + "commit": "7f14cb6327ddfca16a52d5f8fc7a63e33a31d2d1", + "tag": "0.1.0-rc.141" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.55", + "version": "0.13.0-rc.56", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.55.tgz", - "sha256": "0f9ea03c3c5a6d8061268e64b7bb08599c2648468ebf30c0930a618177d068ee" + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.56.tgz", + "sha256": "7c6dc50c0303941f0e017d7d8dd0f81f196a858dd462b21d1ca37d6aa190c6b6" } }, { "id": "api", "packageName": "@treeseed/api", - "version": "0.8.0-rc.51", + "version": "0.8.0-rc.52", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/treeseed-api-0.8.0-rc.51.tgz", - "sha256": "b203338718cca6ef86e4fde7f905d5c5156342bd471914f9d6bee556964057ce" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/treeseed-api-0.8.0-rc.52.tgz", + "sha256": "fa4b29eaecbf110d080aadc70f700f77f4fde1574ab33bf7f451a19e2477e448" } }, { @@ -44,10 +44,10 @@ { "id": "core", "packageName": "@treeseed/core", - "version": "0.12.60-rc.6", + "version": "0.12.60-rc.7", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.6.tgz", - "sha256": "0c25eb268b3a8062590139e9d622a06e585c94e7b6cde44d2d48c4a56c125deb" + "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.7.tgz", + "sha256": "4d33adfad6fc2b97263861e0dfb8f7e53a4e8f8b458bde9d43d5e74d05dd6b35" } }, { @@ -80,10 +80,10 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.32", + "version": "0.13.0-rc.33", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.32.tgz", - "sha256": "1600a3310bb02f66e28a2fa56a716d3b56d2d4dd59f9ffbd2d3701e0fc476f6e" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.33.tgz", + "sha256": "6edca3f355c245e7eb844a41a8b8dff3730f32eb8ca97f9288e5076c14d065d6" } }, { @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc51-1", + "release": "0.8.0~rc52-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/component-release.json", - "sha256": "39748665aaa3076f4cad0b9bcbd4d801283632d3e4705f4c6fd9181397b4f4ab" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/component-release.json", + "sha256": "3f1e4cd3f38b62f9964aef6ddcf4fec23e241facd33edc7806132b85d7ea09c6" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.51/compose.yml", - "sha256": "d4ad30e718e0b97613782abf51ff51039443373a5749485298f627151bf1c9fd" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/compose.yml", + "sha256": "0ee40642e9e265d8041fb252dad282b5edc4ac03d5314532062f5f544c60b860" } } ] @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc26-1", + "release": "0.13.0~rc27-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.26/component-release.json", - "sha256": "ef351d2017c3c4a517c85c24606f27a5dfdd4c604843aef410e558ce6251f752" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.27/component-release.json", + "sha256": "a8a9802e62cfb9633260baa3b7320ad1860549e1bfd3c2bb616365acdb0f104c" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.26/compose.yml", - "sha256": "ee4cfe926322d215f09ac94c4e45fe59ad52a7eed363ffc86a28d4a8c7ab5aef" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.27/compose.yml", + "sha256": "ad8e2903cf370523662375684aa099abaf4ed2e0cf6a53490fb8317fdb70f238" } } ] @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-29T16:12:00.000Z" + "createdAt": "2026-08-30T00:33:59.000Z" } From 79748df7753d14ad0907d65b31ef3a484b4ac4c8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 20:42:44 -0400 Subject: [PATCH 082/501] release: select development integration generation 113 (#241) --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 97e4cfcf..2edbd4e1 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc141", - "generation": 112, + "release": "0.1.0~rc142", + "generation": 113, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { @@ -10,8 +10,8 @@ }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "7f14cb6327ddfca16a52d5f8fc7a63e33a31d2d1", - "tag": "0.1.0-rc.141" + "commit": "b93b9d5ee925cf66ff1af4524b67c44edddaa818", + "tag": "0.1.0-rc.142" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T00:33:59.000Z" + "createdAt": "2026-08-30T00:42:30.000Z" } From 4b1187361d513a5e62da61687b31a377d9a33cd1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 21:02:20 -0400 Subject: [PATCH 083/501] release: select development integration generation 114 (#242) --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 2edbd4e1..3d55a5a1 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc142", - "generation": 113, + "release": "0.1.0~rc143", + "generation": 114, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { @@ -10,8 +10,8 @@ }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "b93b9d5ee925cf66ff1af4524b67c44edddaa818", - "tag": "0.1.0-rc.142" + "commit": "27b551245b37a53facdc02fbff875dc12b13ec8f", + "tag": "0.1.0-rc.143" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T00:42:30.000Z" + "createdAt": "2026-08-30T01:02:45.000Z" } From 0bd7cbd5326e5b0b893d13229f782fa9d9bab5a8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 21:24:02 -0400 Subject: [PATCH 084/501] Promote development integration generation 115 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 3d55a5a1..c359f7c8 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc143", - "generation": 114, + "release": "0.1.0~rc144", + "generation": 115, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { @@ -10,8 +10,8 @@ }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "27b551245b37a53facdc02fbff875dc12b13ec8f", - "tag": "0.1.0-rc.143" + "commit": "b031c25a2a53382a658c7a0a8e9d763dbdd4779e", + "tag": "0.1.0-rc.144" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T01:02:45.000Z" + "createdAt": "2026-08-30T01:23:47.000Z" } From b1d11f6a167ad19202e14ac42fd48fb58e1fe200 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 21:42:55 -0400 Subject: [PATCH 085/501] Advance sandbox provider configuration generations --- deployment/host-configs/capacity-provider-development.json | 4 ++-- deployment/host-configs/development-workstation.json | 4 ++-- scripts/verify-platform.mjs | 2 +- .../template/treeseed.capacity-provider.yaml | 2 +- .../template/treeseed.capacity-provider.yaml | 2 +- .../template/treeseed.capacity-provider.yaml | 2 +- .../template/treeseed.capacity-provider.yaml | 2 +- treeseed.capacity-provider.yaml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index 324f0dad..462d5f6d 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "capacity-provider-development", - "generation": 3, + "generation": 4, "host": { "id": "provider-development-01", "role": "capacity-provider", @@ -77,7 +77,7 @@ } }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } } diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 7208f970..362f6107 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -1,7 +1,7 @@ { "schemaVersion": "treeseed.host/v1", "configurationId": "development-workstation", - "generation": 20, + "generation": 21, "host": { "id": "adrian-workstation", "role": "integrated", @@ -95,7 +95,7 @@ "TREESEED_PROVIDER_MODE": "development" }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v3\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } }, diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 08b6e77f..2fb02cd5 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -62,7 +62,7 @@ if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0 if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); -if (host.generation !== 20) fail('Development workstation must use configuration generation 20.'); +if (host.generation !== 21) fail('Development workstation must use configuration generation 21.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml index 2e4f1430..ac1a9666 100644 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml @@ -3,7 +3,7 @@ ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v3 + generation: local-battery-v4 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml index 2e4f1430..ac1a9666 100644 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml @@ -3,7 +3,7 @@ ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v3 + generation: local-battery-v4 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml index 2e4f1430..ac1a9666 100644 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml @@ -3,7 +3,7 @@ ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v3 + generation: local-battery-v4 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml index 2e4f1430..ac1a9666 100644 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml @@ -3,7 +3,7 @@ ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v3 + generation: local-battery-v4 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index 2e4f1430..ac1a9666 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -3,7 +3,7 @@ ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v3 + generation: local-battery-v4 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery From 3eaa5e2716c7bfd55ee9fd27f7180afa5153d914 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 21:43:22 -0400 Subject: [PATCH 086/501] Promote development integration generation 116 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index c359f7c8..508b7c2e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc144", - "generation": 115, + "release": "0.1.0~rc145", + "generation": 116, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "d5755f534cd450c17f0e5c377b4b2cc9ada45ba6" + "commit": "bae501516448dbdac2f17a64c42676509cdac15e" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "b031c25a2a53382a658c7a0a8e9d763dbdd4779e", - "tag": "0.1.0-rc.144" + "commit": "885f68fae35d7c9a3de68dbd0852eb04f154dcea", + "tag": "0.1.0-rc.145" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T01:23:47.000Z" + "createdAt": "2026-08-30T01:42:36.000Z" } From 7875beff54b1b09b5d4bbed6731b8e24e17e802b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 22:03:14 -0400 Subject: [PATCH 087/501] Promote development integration generation 117 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 508b7c2e..e73a5382 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc145", - "generation": 116, + "release": "0.1.0~rc146", + "generation": 117, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "bae501516448dbdac2f17a64c42676509cdac15e" + "commit": "e18b337c10a6264f4d568b88c1ef237bd7ee7d5f" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "885f68fae35d7c9a3de68dbd0852eb04f154dcea", - "tag": "0.1.0-rc.145" + "commit": "831699df69ec28826dbf713f27aeb9be57533b2c", + "tag": "0.1.0-rc.146" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T01:42:36.000Z" + "createdAt": "2026-08-30T02:02:00.000Z" } From 50414902a3411ee97dfd9ce44f7cdef3538688c8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 23:08:02 -0400 Subject: [PATCH 088/501] Promote development integration generation 118 --- .../integration-releases/development.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index e73a5382..0d4cdce3 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,26 +1,26 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc146", - "generation": 117, + "release": "0.1.0~rc147", + "generation": 118, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "e18b337c10a6264f4d568b88c1ef237bd7ee7d5f" + "commit": "1be9035ae0339e54161344a57c8ebfda3aad8cab" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "831699df69ec28826dbf713f27aeb9be57533b2c", - "tag": "0.1.0-rc.146" + "commit": "6640585f7331d57ad0a945aaaedd4a215c326eef", + "tag": "0.1.0-rc.147" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.56", + "version": "0.13.0-rc.57", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.56.tgz", - "sha256": "7c6dc50c0303941f0e017d7d8dd0f81f196a858dd462b21d1ca37d6aa190c6b6" + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.57.tgz", + "sha256": "720b1208369546e088af038cd0862cf3c67a7a488494a134ceef395773339775" } }, { @@ -80,10 +80,10 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.33", + "version": "0.13.0-rc.34", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.33.tgz", - "sha256": "6edca3f355c245e7eb844a41a8b8dff3730f32eb8ca97f9288e5076c14d065d6" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.34.tgz", + "sha256": "2e568195e2d06bbf4f76892453bdc8222b6cc6ec78ad06ebf8b6dc708c84c92b" } }, { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T02:02:00.000Z" + "createdAt": "2026-08-30T03:07:32.000Z" } From 0b2c8972979a6105aad2c8d54d6798541ee1b64f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 23:23:15 -0400 Subject: [PATCH 089/501] Advance development integration to deployment rc148 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0d4cdce3..cdf194ba 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc147", - "generation": 118, + "release": "0.1.0~rc148", + "generation": 119, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "1be9035ae0339e54161344a57c8ebfda3aad8cab" + "commit": "43ffd4cb5ca0158e0311fc11ec4b518a0e73b987" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "6640585f7331d57ad0a945aaaedd4a215c326eef", - "tag": "0.1.0-rc.147" + "commit": "92cb92a743978b29c8e13743c85adddbb35673df", + "tag": "0.1.0-rc.148" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T03:07:32.000Z" + "createdAt": "2026-08-30T03:21:30.000Z" } From dfc6a3db48849cca6c1886dcccf578aa0c5dc952 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 29 Aug 2026 23:36:03 -0400 Subject: [PATCH 090/501] Advance development integration to deployment rc149 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index cdf194ba..545d45b0 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc148", - "generation": 119, + "release": "0.1.0~rc149", + "generation": 120, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "43ffd4cb5ca0158e0311fc11ec4b518a0e73b987" + "commit": "b206e59a6394ff19f549a8718ef666b4d12d878e" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "92cb92a743978b29c8e13743c85adddbb35673df", - "tag": "0.1.0-rc.148" + "commit": "df38a7b057023cceecb8c8c39fa3d13aced064bc", + "tag": "0.1.0-rc.149" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T03:21:30.000Z" + "createdAt": "2026-08-30T03:36:00.000Z" } From d67b6b2159b79d3842d4d8a6490bb7e58ff13c6f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 00:16:37 -0400 Subject: [PATCH 091/501] Advance development integration to API rc53 --- .../integration-releases/development.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 545d45b0..36f5e37e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc149", - "generation": 120, + "release": "0.1.0~rc150", + "generation": 121, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "b206e59a6394ff19f549a8718ef666b4d12d878e" + "commit": "2d43b24a94516dbf4db24e33742436fea960dfc1" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "df38a7b057023cceecb8c8c39fa3d13aced064bc", - "tag": "0.1.0-rc.149" + "commit": "b5765ab5db838d63728d704405251cb05bf1371f", + "tag": "0.1.0-rc.150" }, "hostPayloads": [ { @@ -26,10 +26,10 @@ { "id": "api", "packageName": "@treeseed/api", - "version": "0.8.0-rc.52", + "version": "0.8.0-rc.53", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/treeseed-api-0.8.0-rc.52.tgz", - "sha256": "fa4b29eaecbf110d080aadc70f700f77f4fde1574ab33bf7f451a19e2477e448" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/treeseed-api-0.8.0-rc.53.tgz", + "sha256": "a163099f1c339141a2ac8669e32837f034fba739b4cc34d533edbd26a86b143c" } }, { @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc52-1", + "release": "0.8.0~rc53-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/component-release.json", - "sha256": "3f1e4cd3f38b62f9964aef6ddcf4fec23e241facd33edc7806132b85d7ea09c6" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/component-release.json", + "sha256": "72c0f2786a99cd3014b9b1587e1b565516ffd068a2a85b458108c73609aa1a52" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.52/compose.yml", - "sha256": "0ee40642e9e265d8041fb252dad282b5edc4ac03d5314532062f5f544c60b860" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/compose.yml", + "sha256": "43483438a42a64afbbb947cfb71c9aa4244968241ecc9029a61aa567ea534d1b" } } ] From 10905e7438b6d79b0f59d99d3da8eb38a67b0e7f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 00:36:30 -0400 Subject: [PATCH 092/501] Advance development integration to deployment rc151 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 36f5e37e..9a0e453e 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc150", - "generation": 121, + "release": "0.1.0~rc151", + "generation": 122, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "2d43b24a94516dbf4db24e33742436fea960dfc1" + "commit": "11d7210c17e6949599025acc2a7a797cf7812010" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "b5765ab5db838d63728d704405251cb05bf1371f", - "tag": "0.1.0-rc.150" + "commit": "2661e53fb173649800e19a9a16aa528955216fb4", + "tag": "0.1.0-rc.151" }, "hostPayloads": [ { From ce928ec3c6b05454317667f131ff5258acf08ce5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 01:08:24 -0400 Subject: [PATCH 093/501] Select Agent rc28 in development generation 123 --- .../integration-releases/development.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 9a0e453e..fb6a09e6 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc151", - "generation": 122, + "release": "0.1.0~rc152", + "generation": 123, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "11d7210c17e6949599025acc2a7a797cf7812010" + "commit": "a4d462c763a8641bbef21663161bbdbc499a66c1" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "2661e53fb173649800e19a9a16aa528955216fb4", - "tag": "0.1.0-rc.151" + "commit": "f7ac5e995a54d1af478b2624bce313290bb684e6", + "tag": "0.1.0-rc.152" }, "hostPayloads": [ { @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc27-1", + "release": "0.13.0~rc28-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.27/component-release.json", - "sha256": "a8a9802e62cfb9633260baa3b7320ad1860549e1bfd3c2bb616365acdb0f104c" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.28/component-release.json", + "sha256": "2a5deae4ae67d0a991ffaf05c709710192628bf756e56624374fc090fa5010a9" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.27/compose.yml", - "sha256": "ad8e2903cf370523662375684aa099abaf4ed2e0cf6a53490fb8317fdb70f238" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.28/compose.yml", + "sha256": "f97d6027861260bf7b5087335211aa03fe6d2b7a213f414c962f20d955fd2f08" } } ] From 5be81db36bbf033140ed6c19c0e9470f9469a61f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 01:32:03 -0400 Subject: [PATCH 094/501] Select readable Agent rc29 and exact sandbox guest --- .../capacity-provider-development.json | 12 +++++------ .../host-configs/development-workstation.json | 12 +++++------ .../integration-releases/development.json | 20 +++++++++---------- .../template/treeseed.capacity-provider.yaml | 10 +++++----- .../template/treeseed.capacity-provider.yaml | 10 +++++----- .../template/treeseed.capacity-provider.yaml | 10 +++++----- .../template/treeseed.capacity-provider.yaml | 10 +++++----- treeseed.capacity-provider.yaml | 10 +++++----- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index 462d5f6d..f86ff0b7 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -77,7 +77,7 @@ } }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } } @@ -121,27 +121,27 @@ { "id": "read", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "unit", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "integration", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "platform", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "connected", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" } ] }, diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 362f6107..eeb00112 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -95,7 +95,7 @@ "TREESEED_PROVIDER_MODE": "development" }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" } } }, @@ -221,27 +221,27 @@ { "id": "read", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "unit", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "integration", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "platform", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" }, { "id": "connected", "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f" + "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" } ] }, diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index fb6a09e6..199348c7 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc152", - "generation": 123, + "release": "0.1.0~rc153", + "generation": 124, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "a4d462c763a8641bbef21663161bbdbc499a66c1" + "commit": "6043ddf9d5f2a4d7ee971ef38e6776a252bd3a21" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "f7ac5e995a54d1af478b2624bce313290bb684e6", - "tag": "0.1.0-rc.152" + "commit": "6e5780a528d43421c361401dfa43a51781d337ae", + "tag": "0.1.0-rc.153" }, "hostPayloads": [ { @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc28-1", + "release": "0.13.0~rc29-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.28/component-release.json", - "sha256": "2a5deae4ae67d0a991ffaf05c709710192628bf756e56624374fc090fa5010a9" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.29/component-release.json", + "sha256": "a662745bd43d30ddfe4c8b72b4d6bc9ceb3c8082227bbc06ae8e85f429ac2661" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.28/compose.yml", - "sha256": "f97d6027861260bf7b5087335211aa03fe6d2b7a213f414c962f20d955fd2f08" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.29/compose.yml", + "sha256": "15533c315a946a6870e077b8c46ff8c259fbb56369d9509514f9aa5ba6f35dd5" } } ] diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml index ac1a9666..6c107a33 100644 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml @@ -25,7 +25,7 @@ sandbox: profiles: - id: read guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 2 @@ -35,7 +35,7 @@ sandbox: outputBytes: 67108864 - id: unit guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -45,7 +45,7 @@ sandbox: outputBytes: 134217728 - id: integration guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -55,7 +55,7 @@ sandbox: outputBytes: 268435456 - id: platform guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 8 @@ -65,7 +65,7 @@ sandbox: outputBytes: 536870912 - id: connected guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml index ac1a9666..6c107a33 100644 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml @@ -25,7 +25,7 @@ sandbox: profiles: - id: read guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 2 @@ -35,7 +35,7 @@ sandbox: outputBytes: 67108864 - id: unit guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -45,7 +45,7 @@ sandbox: outputBytes: 134217728 - id: integration guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -55,7 +55,7 @@ sandbox: outputBytes: 268435456 - id: platform guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 8 @@ -65,7 +65,7 @@ sandbox: outputBytes: 536870912 - id: connected guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml index ac1a9666..6c107a33 100644 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml @@ -25,7 +25,7 @@ sandbox: profiles: - id: read guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 2 @@ -35,7 +35,7 @@ sandbox: outputBytes: 67108864 - id: unit guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -45,7 +45,7 @@ sandbox: outputBytes: 134217728 - id: integration guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -55,7 +55,7 @@ sandbox: outputBytes: 268435456 - id: platform guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 8 @@ -65,7 +65,7 @@ sandbox: outputBytes: 536870912 - id: connected guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml index ac1a9666..6c107a33 100644 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml @@ -25,7 +25,7 @@ sandbox: profiles: - id: read guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 2 @@ -35,7 +35,7 @@ sandbox: outputBytes: 67108864 - id: unit guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -45,7 +45,7 @@ sandbox: outputBytes: 134217728 - id: integration guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -55,7 +55,7 @@ sandbox: outputBytes: 268435456 - id: platform guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 8 @@ -65,7 +65,7 @@ sandbox: outputBytes: 536870912 - id: connected guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index ac1a9666..6c107a33 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -25,7 +25,7 @@ sandbox: profiles: - id: read guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 2 @@ -35,7 +35,7 @@ sandbox: outputBytes: 67108864 - id: unit guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -45,7 +45,7 @@ sandbox: outputBytes: 134217728 - id: integration guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 @@ -55,7 +55,7 @@ sandbox: outputBytes: 268435456 - id: platform guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 8 @@ -65,7 +65,7 @@ sandbox: outputBytes: 536870912 - id: connected guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:14c1db33cb98b7d7998df97b783e6e0bdc7422e9cda302fdce70193ca5c81f5f + guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a defaultDenyNetwork: true resources: cpuCores: 4 From 15938e6bd9bf92b8a14e1b0aa7b953562022d666 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 02:00:38 -0400 Subject: [PATCH 095/501] Promote API rc54 capability bridge --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 199348c7..0ce0b608 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc53-1", + "release": "0.8.0~rc54-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/component-release.json", - "sha256": "72c0f2786a99cd3014b9b1587e1b565516ffd068a2a85b458108c73609aa1a52" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.54/component-release.json", + "sha256": "aec7953d53e43f5ee38184251eefb33cb5d7655d5c19266cad01c730a3143b12" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/compose.yml", - "sha256": "43483438a42a64afbbb947cfb71c9aa4244968241ecc9029a61aa567ea534d1b" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.54/compose.yml", + "sha256": "98e0788f2b433ada3c6e491c84198988b325cfc3fb2589cd3516c8a686595b81" } } ] From 458bacd07ac3a7449dd7e173920c37862c6e0d98 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 02:25:54 -0400 Subject: [PATCH 096/501] Integrate Agent rc30 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0ce0b608..0eb2f344 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc29-1", + "release": "0.13.0~rc30-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.29/component-release.json", - "sha256": "a662745bd43d30ddfe4c8b72b4d6bc9ceb3c8082227bbc06ae8e85f429ac2661" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.30/component-release.json", + "sha256": "d9b1840fea8ed5352adf944a64519a5354369b55b421ff36f621986b3220742f" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.29/compose.yml", - "sha256": "15533c315a946a6870e077b8c46ff8c259fbb56369d9509514f9aa5ba6f35dd5" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.30/compose.yml", + "sha256": "99e3c4f708ecb2d8212786b4e2391ff53bd32e022e6aa4396b9ebfdc4dc988d8" } } ] From 0501f22d5d6c10617030361bead5d8801df95fdb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 03:18:17 -0400 Subject: [PATCH 097/501] Integrate Agent rc31 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 0eb2f344..d659c0ec 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc30-1", + "release": "0.13.0~rc31-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.30/component-release.json", - "sha256": "d9b1840fea8ed5352adf944a64519a5354369b55b421ff36f621986b3220742f" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.31/component-release.json", + "sha256": "3f3668e651bda275bd63ca82dea9b55a27bd0c6a6406b08a3b8fbc1948f248d8" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.30/compose.yml", - "sha256": "99e3c4f708ecb2d8212786b4e2391ff53bd32e022e6aa4396b9ebfdc4dc988d8" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.31/compose.yml", + "sha256": "730d11582ae97bfe9e8b59e42fcf278cf811e59025b548a5e468a828730b79bd" } } ] From 48be46e7c03ce28d1e8399271e94a4c031c5a85d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 03:52:11 -0400 Subject: [PATCH 098/501] Integrate API rc55 and deployment rc159 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index d659c0ec..4bb85d9a 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc54-1", + "release": "0.8.0~rc55-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.54/component-release.json", - "sha256": "aec7953d53e43f5ee38184251eefb33cb5d7655d5c19266cad01c730a3143b12" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.55/component-release.json", + "sha256": "b6b11479e4168ad806554c3f7f540b9dce6c43201d27c7c0bd3228faa415be42" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.54/compose.yml", - "sha256": "98e0788f2b433ada3c6e491c84198988b325cfc3fb2589cd3516c8a686595b81" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.55/compose.yml", + "sha256": "3bfde9c7b9d43608f89ba8cd559b7788666ad1a29fea6da0f6e4afbb83da0afe" } } ] From 4368e7464c6456d161d7e192e0d1a89efde43ed2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 04:16:38 -0400 Subject: [PATCH 099/501] Integrate Deployment rc160 updater closure Closes #258 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 4bb85d9a..e75c4d67 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc153", - "generation": 124, + "release": "0.1.0~rc160", + "generation": 125, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "6043ddf9d5f2a4d7ee971ef38e6776a252bd3a21" + "commit": "b7141775ddffffa663883ada357299f9ca9589e7" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "6e5780a528d43421c361401dfa43a51781d337ae", - "tag": "0.1.0-rc.153" + "commit": "09cdbbae60fdc8e45d340ad68f8522da52ee7497", + "tag": "0.1.0-rc.160" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T03:36:00.000Z" + "createdAt": "2026-08-30T08:16:11.000Z" } From cdc24f36aaca6027b43774afbb69a1267b35b6bb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 04:21:53 -0400 Subject: [PATCH 100/501] Integrate API rc56 capability routing --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 4bb85d9a..db03601f 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc55-1", + "release": "0.8.0~rc56-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.55/component-release.json", - "sha256": "b6b11479e4168ad806554c3f7f540b9dce6c43201d27c7c0bd3228faa415be42" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.56/component-release.json", + "sha256": "cf7a281a2b9ddf26d5fd01aac6a4bdd11ef58e664d1390f57cb02dd955cf432f" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.55/compose.yml", - "sha256": "3bfde9c7b9d43608f89ba8cd559b7788666ad1a29fea6da0f6e4afbb83da0afe" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.56/compose.yml", + "sha256": "a3ff065bd6855c89c3be7a2d3ffc4d5dcf1c657e889b31c3f9ad661002a37fe8" } } ] From d54f9ba417393399d9efd7216eb29b81ab63a689 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 04:23:16 -0400 Subject: [PATCH 101/501] Use standard TreeSeed host paths --- deployment/host-configs/development-workstation.json | 6 +++--- docs/project-architecture-migration.md | 4 ++-- docs/sdk-first-cutover-implementation-plan.md | 2 +- scripts/verify-platform.mjs | 9 ++++++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index eeb00112..6bab1417 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -10,7 +10,7 @@ "runtime": { "management": "managed", "environment": "development", - "dataRoot": "/home/adrian/Projects/treeseed/platform/.treeseed/data" + "dataRoot": "/var/lib/treeseed/development/.treeseed/data" }, "updates": { "defaultTrack": "development", @@ -247,8 +247,8 @@ }, "providerVolume": { "encryption": "luks2", - "backingPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/.encrypted/provider-data.luks", - "mountPath": "/home/adrian/Projects/treeseed/platform/.treeseed/data/agent", + "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", + "mountPath": "/var/lib/treeseed/agent", "sizeBytes": 17179869184, "unlock": "systemd-credential", "recoveryRequired": true diff --git a/docs/project-architecture-migration.md b/docs/project-architecture-migration.md index 83956fb3..69e7506e 100644 --- a/docs/project-architecture-migration.md +++ b/docs/project-architecture-migration.md @@ -41,10 +41,10 @@ npx trsd platform workset --apply --yes --branch feature/assignment-change --ass The clone itself is initialized from one canonical Platform template. A Platform "profile" is not a second schema or runtime selector: it is the exact immutable template revision recorded in machine-local template state. The default TreeSeed development installation is created with: ```bash -npx trsd platform init /home/adrian/Projects/treeseed/platform \ +npx trsd platform init ./platform \ --repository treeseed-ai/platform --ref staging \ --template platform-local-managed-codex --team treeseed --plan --json -npx trsd platform init /home/adrian/Projects/treeseed/platform \ +npx trsd platform init ./platform \ --repository treeseed-ai/platform --ref staging \ --template platform-local-managed-codex --team treeseed --apply --yes --json ``` diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index a7cf824d..10f69424 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -235,7 +235,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail - State: `verified` - Why human authority is required: only the human may see the password-reset email, choose the new password, and establish the accountable human session used to approve SDK project contribution authority. The agent must not see or enter those secrets. - Surface: local Mailpit `http://127.0.0.1:8025`, trusted local API `http://127.0.0.1:3002`, and the locally built CLI candidate at `.treeseed/definition-cutover-worktrees/cli/dist/cli/main.js`. -- Human action: open the newest password-reset message in Mailpit. From `/home/adrian/Projects/treeseed/platform`, run `TREESEED_CONTROL_PLANE_MODE=managed TREESEED_API_BASE_URL=http://127.0.0.1:3002 node .treeseed/definition-cutover-worktrees/cli/dist/cli/main.js auth password-reset complete --market local`. Paste the complete reset link into the silent prompt, enter and confirm a new password, then run the same command prefix with `auth login --market local` and finally `auth whoami --market local`. +- Human action: open the newest password-reset message in Mailpit. From the Platform checkout root, run `TREESEED_CONTROL_PLANE_MODE=managed TREESEED_API_BASE_URL=http://127.0.0.1:3002 node .treeseed/definition-cutover-worktrees/cli/dist/cli/main.js auth password-reset complete --market local`. Paste the complete reset link into the silent prompt, enter and confirm a new password, then run the same command prefix with `auth login --market local` and finally `auth whoami --market local`. - Safe output: reset reports completion without echoing the link/token/password; login reports the principal display name/ID and local market; `whoami` reports the human principal and teams but no access or refresh token. - Redaction: do not paste the reset link, token, password, session file, cookies, or command output containing private account data into chat. Password and token values must never be command options. - Success criteria: reset completes, password login succeeds, and authoritative `whoami` returns human principal `edc6ce32-8e6e-4dbe-b085-6e077a24ce93` with TreeSeed team-owner access. diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 2fb02cd5..8c149354 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -18,6 +18,12 @@ if (existsSync(resolve(root, 'treeseed.portfolio.json'))) fail('Platform must re const index = execFileSync('git', ['ls-files', '--stage'], { cwd: root, encoding: 'utf8' }); const gitlinks = index.split('\n').filter((line) => line.startsWith('160000 ')); if (gitlinks.length) fail(`Platform contains forbidden gitlinks: ${gitlinks.join(', ')}`); +const trackedFiles = execFileSync('git', ['ls-files', '-z'], { cwd: root, encoding: 'utf8' }).split('\0').filter(Boolean); +const homePathFiles = trackedFiles.filter((path) => { + const absolute = resolve(root, path); + return existsSync(absolute) && statSync(absolute).isFile() && /\/(?:home|Users)\//u.test(read(path)); +}); +if (homePathFiles.length) fail(`Platform must not contain host-specific home-directory paths: ${homePathFiles.join(', ')}`); for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml', 'deployment/host-configs/development-workstation.json', 'deployment/host-configs/capacity-provider-development.json', 'deployment/integration-releases/stable.json', 'deployment/integration-releases/development.json', 'deployment/treeai-component-inputs.json', 'docs/multi-host-deployment.md']) requireFile(path); for (const path of ['seeds/agents.yaml', 'seeds/platform.yaml', 'treeseed.agents-capacity-provider.yaml', 'treeseed.platform-capacity-provider.yaml']) { @@ -51,7 +57,7 @@ if (provider.includes('isolation: process') || provider.includes('isolation: wor for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCredentialRef:']) if (provider.includes(forbidden)) fail(`Unified provider manifest retains ${forbidden}.`); const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); -if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || !host.runtime?.dataRoot?.endsWith('/platform/.treeseed/data')) fail('Development workstation must use the current integrated managed-host contract and workspace-visible data root.'); +if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || host.runtime?.dataRoot !== '/var/lib/treeseed/development/.treeseed/data') fail('Development workstation must use the current integrated managed-host contract and standard TreeSeed development data root.'); if (host.updates?.defaultTrack !== 'development' || host.updates?.stable?.maintenanceWindow?.weekday !== 'sunday' || host.updates?.stable?.maintenanceWindow?.localTime !== '03:00') fail('Development workstation must poll development while preserving the stable weekly activation policy.'); for (const componentId of ['api', 'admin', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); for (const componentId of ['ai-inference', 'ai-training', 'ai-lab']) if (host.components?.[componentId]?.enabled !== false) fail(`Default workstation must leave ${componentId} disabled.`); @@ -61,6 +67,7 @@ const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+$/u.test(key))) fail('Alias overrides must use full component.service.endpoint identities.'); if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); +if (host.security?.providerVolume?.backingPath !== '/var/lib/treeseed/encrypted/provider-data.luks' || host.security?.providerVolume?.mountPath !== '/var/lib/treeseed/agent') fail('Development workstation provider storage must use standard TreeSeed paths.'); if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); if (host.generation !== 21) fail('Development workstation must use configuration generation 21.'); if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); From 6a1769aa7a906a49bf5ca58a60c47d269dd86a07 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 10:53:28 -0400 Subject: [PATCH 102/501] Integrate Agent rc32 and Deployment rc165 --- .../integration-releases/development.json | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index c893284d..c2dc07af 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc160", - "generation": 125, + "release": "0.1.0~rc165", + "generation": 126, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "b7141775ddffffa663883ada357299f9ca9589e7" + "commit": "b8037dbfdfbee9cc162ef2b8d4f97518551ce0ec" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "09cdbbae60fdc8e45d340ad68f8522da52ee7497", - "tag": "0.1.0-rc.160" + "commit": "69a2ed36e8f5be58141d6c91ee1688ee2e0bbe2f", + "tag": "0.1.0-rc.165" }, "hostPayloads": [ { @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc31-1", + "release": "0.13.0~rc32-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.31/component-release.json", - "sha256": "3f3668e651bda275bd63ca82dea9b55a27bd0c6a6406b08a3b8fbc1948f248d8" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.32/component-release.json", + "sha256": "eb109907cf8b1ae1dae7fb68ef439220ca3865d300868d11e1ad99c1666c220e" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.31/compose.yml", - "sha256": "730d11582ae97bfe9e8b59e42fcf278cf811e59025b548a5e468a828730b79bd" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.32/compose.yml", + "sha256": "1b076a56e8597d765405f138dc120505085fa462293728a1e9086889a8af3f8b" } } ] @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T08:16:11.000Z" + "createdAt": "2026-08-30T14:52:00.000Z" } From 9b13f1db7ee5d42e0a4e93d7ed3db0e553b4cac0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 11:13:56 -0400 Subject: [PATCH 103/501] Integrate Agent rc33 and Deployment rc166 --- .../integration-releases/development.json | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index c2dc07af..6195f71c 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc165", - "generation": 126, + "release": "0.1.0~rc166", + "generation": 127, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "b8037dbfdfbee9cc162ef2b8d4f97518551ce0ec" + "commit": "fb9ccd2099209880fa8085e8cc0561278b533cf1" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "69a2ed36e8f5be58141d6c91ee1688ee2e0bbe2f", - "tag": "0.1.0-rc.165" + "commit": "48fd07534718c0910b2841b68fe4ab6a9ac9bb07", + "tag": "0.1.0-rc.166" }, "hostPayloads": [ { @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc32-1", + "release": "0.13.0~rc33-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.32/component-release.json", - "sha256": "eb109907cf8b1ae1dae7fb68ef439220ca3865d300868d11e1ad99c1666c220e" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.33/component-release.json", + "sha256": "5282de3d7f5aff79d2e7d27e0a411c95c7043d65186d6cc42d14c39310013b18" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.32/compose.yml", - "sha256": "1b076a56e8597d765405f138dc120505085fa462293728a1e9086889a8af3f8b" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.33/compose.yml", + "sha256": "ca26ae844a79526e2fcf76c3878e9ebc5301c888e7fccfba9deeddbf6c03a363" } } ] @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T14:52:00.000Z" + "createdAt": "2026-08-30T19:10:00.000Z" } From 098958246550fb166eb51d8195cb36d4f72cfcb5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 11:33:27 -0400 Subject: [PATCH 104/501] Integrate Deployment rc167 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 6195f71c..7bbdb091 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc166", - "generation": 127, + "release": "0.1.0~rc167", + "generation": 128, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "fb9ccd2099209880fa8085e8cc0561278b533cf1" + "commit": "e279323dbb268bf400045975b77a7a8d01a2b46a" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "48fd07534718c0910b2841b68fe4ab6a9ac9bb07", - "tag": "0.1.0-rc.166" + "commit": "6f5e18bb6242b1c9ea5d810f43f3cc0cee896a6f", + "tag": "0.1.0-rc.167" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T19:10:00.000Z" + "createdAt": "2026-08-30T19:30:00.000Z" } From caaeeb28588b2c777f692cd3677dfc23328c6227 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 12:00:13 -0400 Subject: [PATCH 105/501] Integrate Deployment rc168 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 7bbdb091..359091af 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc167", - "generation": 128, + "release": "0.1.0~rc168", + "generation": 129, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "e279323dbb268bf400045975b77a7a8d01a2b46a" + "commit": "5fd9d91593bedd233ca46123d7eb007085a569b6" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "6f5e18bb6242b1c9ea5d810f43f3cc0cee896a6f", - "tag": "0.1.0-rc.167" + "commit": "7896363cb2e0c3bc019c6d91c123518f5f79d164", + "tag": "0.1.0-rc.168" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T19:30:00.000Z" + "createdAt": "2026-08-30T20:00:00.000Z" } From ac88bdd228a845108b876861dfbd37c98cd7d9bb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 12:06:58 -0400 Subject: [PATCH 106/501] Integrate Deployment rc169 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 359091af..f5971237 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc168", - "generation": 129, + "release": "0.1.0~rc169", + "generation": 130, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "5fd9d91593bedd233ca46123d7eb007085a569b6" + "commit": "7b92b13fbdc6020395cc2a3764cc8f0b5b767aa4" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "7896363cb2e0c3bc019c6d91c123518f5f79d164", - "tag": "0.1.0-rc.168" + "commit": "b3d29bd4286d2696b6b2b46220488e41d1fa6d73", + "tag": "0.1.0-rc.169" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T20:00:00.000Z" + "createdAt": "2026-08-30T20:08:00.000Z" } From 1b415140dbd44ff3a8e9376696c9c9c3445ec0d8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 12:22:09 -0400 Subject: [PATCH 107/501] Integrate Deployment rc170 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f5971237..6d01a71b 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc169", - "generation": 130, + "release": "0.1.0~rc170", + "generation": 131, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "7b92b13fbdc6020395cc2a3764cc8f0b5b767aa4" + "commit": "83f487c2ffb075cf590c817dc6b0826afbcbe557" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "b3d29bd4286d2696b6b2b46220488e41d1fa6d73", - "tag": "0.1.0-rc.169" + "commit": "189a41348e3e886f3cd09bc05c0139d0a8fe48d7", + "tag": "0.1.0-rc.170" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T20:08:00.000Z" + "createdAt": "2026-08-30T20:22:00.000Z" } From dbcb408a2bdab29abbc577a4d7b4cc0e0ffe1651 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 12:46:30 -0400 Subject: [PATCH 108/501] Integrate Deployment rc171 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 6d01a71b..884d9543 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc170", - "generation": 131, + "release": "0.1.0~rc171", + "generation": 132, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "83f487c2ffb075cf590c817dc6b0826afbcbe557" + "commit": "1771b2152c343217bbec2c986078d18e1c580bd1" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "189a41348e3e886f3cd09bc05c0139d0a8fe48d7", - "tag": "0.1.0-rc.170" + "commit": "caf5c143ebc3eeb46d5c86e92049023e2485f79b", + "tag": "0.1.0-rc.171" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T20:22:00.000Z" + "createdAt": "2026-08-30T20:47:00.000Z" } From 03ca88524ddbe36d9d459c8351c5a9ded4e7eb65 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 13:17:38 -0400 Subject: [PATCH 109/501] Integrate Deployment rc172 --- deployment/integration-releases/development.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 884d9543..29ce427b 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc171", - "generation": 132, + "release": "0.1.0~rc172", + "generation": 133, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "1771b2152c343217bbec2c986078d18e1c580bd1" + "commit": "afb1424048816b3fe360bf6e8d15790c1c5ba610" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "caf5c143ebc3eeb46d5c86e92049023e2485f79b", - "tag": "0.1.0-rc.171" + "commit": "070ad984638d71d40e399c55acd2b93c10fae424", + "tag": "0.1.0-rc.172" }, "hostPayloads": [ { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T20:47:00.000Z" + "createdAt": "2026-08-30T17:17:28.000Z" } From 75a8135b59d5635a916d748d928feba81a5e1e68 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 13:45:31 -0400 Subject: [PATCH 110/501] Integrate Deployment rc173 --- .../integration-releases/development.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 29ce427b..28c1382d 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc172", - "generation": 133, + "release": "0.1.0~rc173", + "generation": 134, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "afb1424048816b3fe360bf6e8d15790c1c5ba610" + "commit": "565a8b9882f12c136f839fa294542b7cd5fcbe78" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "070ad984638d71d40e399c55acd2b93c10fae424", - "tag": "0.1.0-rc.172" + "commit": "5fd54115d597f39a34f2702a48ce223fcfbd9ac5", + "tag": "0.1.0-rc.173" }, "hostPayloads": [ { @@ -151,17 +151,17 @@ }, { "componentId": "agent", - "release": "0.13.0~rc33-1", + "release": "0.13.0~rc34-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.33/component-release.json", - "sha256": "5282de3d7f5aff79d2e7d27e0a411c95c7043d65186d6cc42d14c39310013b18" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.34/component-release.json", + "sha256": "4c84bd2a790c759cc8819900e7b76265ec747bd3032950c1248ddb069728d3a5" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.33/compose.yml", - "sha256": "ca26ae844a79526e2fcf76c3878e9ebc5301c888e7fccfba9deeddbf6c03a363" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.34/compose.yml", + "sha256": "83a07f4a7ae1a348ef1083900cb83f5e85deda6533bf7d96d6ce4236994752f9" } } ] From 106fcbadcfe798b8656cc7ab7fb1d339f278b911 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 14:12:04 -0400 Subject: [PATCH 111/501] Integrate Deployment rc174 --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 28c1382d..e10f418f 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc173", - "generation": 134, + "release": "0.1.0~rc174", + "generation": 135, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "565a8b9882f12c136f839fa294542b7cd5fcbe78" + "commit": "5b26495297ca5d6e550b923dd4a90561c116e05a" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "5fd54115d597f39a34f2702a48ce223fcfbd9ac5", - "tag": "0.1.0-rc.173" + "commit": "c3bf0955abaef70deb25fe5b81145707cf643b8f", + "tag": "0.1.0-rc.174" }, "hostPayloads": [ { From bdd729621364cd177080c73389df95677f0ed7d0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 14:48:42 -0400 Subject: [PATCH 112/501] Select host development bridge generation --- .../integration-releases/development.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index e10f418f..7b95f187 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,26 +1,26 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc174", - "generation": 135, + "release": "0.1.0~rc175", + "generation": 136, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "5b26495297ca5d6e550b923dd4a90561c116e05a" + "commit": "ef04ca918e70860fdbf2f940a3de0ffcb1ff4f97" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "c3bf0955abaef70deb25fe5b81145707cf643b8f", - "tag": "0.1.0-rc.174" + "commit": "ee2d5ca80e5a8160191f2b812b38d9e075c49d8f", + "tag": "0.1.0-rc.175" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.57", + "version": "0.13.0-rc.58", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.57.tgz", - "sha256": "720b1208369546e088af038cd0862cf3c67a7a488494a134ceef395773339775" + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.58.tgz", + "sha256": "ce7ee59e021c80ba544f781d9b844ef05127c16d2b9d34bae1e48dfa7c89fcb7" } }, { @@ -80,10 +80,10 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.34", + "version": "0.13.0-rc.35", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.34.tgz", - "sha256": "2e568195e2d06bbf4f76892453bdc8222b6cc6ec78ad06ebf8b6dc708c84c92b" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.35.tgz", + "sha256": "bd7b1604cf23b67702a1bb9584b49544f84ca9a0d835f51d82f826022ea347c7" } }, { @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T17:17:28.000Z" + "createdAt": "2026-08-30T18:48:17.000Z" } From 351178a994cb9b92c90b494cff51c34a5e15bc85 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 30 Aug 2026 23:59:48 -0400 Subject: [PATCH 113/501] feat: configure capability marketplace development workflows --- development.acceptance.session.yaml | 21 + development.chat-context.session.yaml | 16 + ...lopment.communication-rollout.session.yaml | 21 + docs/dev-release.md | 2 +- scenes/team-project-portfolio-demo.yaml | 2 +- treeseed.capacity-provider.yaml | 1326 ++++++++++++++++- 6 files changed, 1352 insertions(+), 36 deletions(-) create mode 100644 development.acceptance.session.yaml create mode 100644 development.chat-context.session.yaml create mode 100644 development.communication-rollout.session.yaml diff --git a/development.acceptance.session.yaml b/development.acceptance.session.yaml new file mode 100644 index 00000000..f9c2c2e9 --- /dev/null +++ b/development.acceptance.session.yaml @@ -0,0 +1,21 @@ +# Full local acceptance environment used by repository-owned TreeSeed scenes. +schemaVersion: treeseed.development-selection/v1 +projects: + - manifest: packages/sdk/treeseed.package.yaml + worktree: packages/sdk + targets: [{ id: package, mode: live }] + - manifest: packages/ui/treeseed.package.yaml + worktree: packages/ui + targets: [{ id: package, mode: live }] + - manifest: packages/core/treeseed.package.yaml + worktree: packages/core + targets: [{ id: package, mode: live }] + - manifest: packages/api/treeseed.package.yaml + worktree: packages/api + targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] + - manifest: packages/admin/treeseed.package.yaml + worktree: packages/admin + targets: [{ id: web, mode: live }] + - manifest: packages/agent/treeseed.package.yaml + worktree: packages/agent + targets: [{ id: provider, mode: candidate }] diff --git a/development.chat-context.session.yaml b/development.chat-context.session.yaml new file mode 100644 index 00000000..d7d53e3a --- /dev/null +++ b/development.chat-context.session.yaml @@ -0,0 +1,16 @@ +# End-to-end chat and assignment-context development with a candidate capacity provider. +# Use development.communication-rollout.session.yaml when provider behavior is out of scope. +schemaVersion: treeseed.development-selection/v1 +projects: + - manifest: packages/sdk/treeseed.package.yaml + worktree: packages/sdk + targets: [{ id: package, mode: live }] + - manifest: packages/api/treeseed.package.yaml + worktree: packages/api + targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] + - manifest: packages/cli/treeseed.package.yaml + worktree: packages/cli + targets: [{ id: package, mode: live }] + - manifest: packages/agent/treeseed.package.yaml + worktree: packages/agent + targets: [{ id: provider, mode: candidate }] diff --git a/development.communication-rollout.session.yaml b/development.communication-rollout.session.yaml new file mode 100644 index 00000000..e072174b --- /dev/null +++ b/development.communication-rollout.session.yaml @@ -0,0 +1,21 @@ +# Communication control-plane development without replacing the released capacity provider. +# Use development.chat-context.session.yaml when provider behavior is part of the test. +schemaVersion: treeseed.development-selection/v1 +projects: + - manifest: packages/sdk/treeseed.package.yaml + worktree: packages/sdk + targets: + - { id: package, mode: live } + - manifest: packages/api/treeseed.package.yaml + worktree: packages/api + targets: + - { id: service, mode: live } + - { id: operations-runner, mode: candidate } + - manifest: packages/cli/treeseed.package.yaml + worktree: packages/cli + targets: + - { id: package, mode: live } + - manifest: packages/agent/treeseed.package.yaml + worktree: packages/agent + targets: + - { id: provider, mode: released } diff --git a/docs/dev-release.md b/docs/dev-release.md index b2cd8c2d..6ebf5faa 100644 --- a/docs/dev-release.md +++ b/docs/dev-release.md @@ -439,7 +439,7 @@ The manager does not infer semantic compatibility from timestamps. It reports wh ### CLI - Kind: `package-watch` or direct executable rebuild. -- A session-scoped shim may select the locally built CLI while normal host commands remain on the released CLI. +- The installed `trsd` launcher automatically selects the completed local CLI generation recorded by `trsd dev use` and falls back to the released CLI when that selection is absent, expired, or unreadable. - Machine JSON schemas, exit statuses, confirmation behavior, and stdout/stderr boundaries remain contract-tested. - Freeze produces the npm tarball and later the Deployment-qualified Debian payload. diff --git a/scenes/team-project-portfolio-demo.yaml b/scenes/team-project-portfolio-demo.yaml index 47793867..91df691d 100644 --- a/scenes/team-project-portfolio-demo.yaml +++ b/scenes/team-project-portfolio-demo.yaml @@ -101,7 +101,7 @@ devices: setup: dev: required: true - command: trsd dev start --web-runtime local --json + command: trsd dev session start development.acceptance.session.yaml --actor scene-runner --json reuseExisting: true artifacts: diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index 6c107a33..6484034e 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 4 +schemaVersion: 5 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v4 + generation: local-battery-v5 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -33,6 +33,16 @@ sandbox: diskBytes: 8589934592 processLimit: 512 outputBytes: 67108864 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: unit guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -43,6 +53,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: integration guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -53,6 +73,16 @@ sandbox: diskBytes: 25769803776 processLimit: 2048 outputBytes: 268435456 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: platform guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -63,6 +93,16 @@ sandbox: diskBytes: 34359738368 processLimit: 4096 outputBytes: 536870912 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: connected guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -73,6 +113,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime lanes: - id: communication purpose: communication @@ -85,10 +135,9 @@ lanes: queueLimit: 100 timeoutSeconds: 120 capabilities: - - communication - - agent-execution - - research - - planning + - treeseed.coordination.conversation + - treeseed.engineering.repository-analysis + - treeseed.research.synthesis - id: platform purpose: platform priority: 70 @@ -100,10 +149,9 @@ lanes: queueLimit: 100 timeoutSeconds: 900 capabilities: - - agent-execution - - engineering - - verification - - repository_work + - treeseed.engineering.architecture + - treeseed.engineering.code-change + - treeseed.engineering.review - id: workday purpose: workday priority: 50 @@ -118,13 +166,10 @@ lanes: amount: 600 unit: seconds capabilities: - - agent-execution - - engineering - - research - - planning - - acting - - verification - - repository_work + - treeseed.coordination.planning + - treeseed.engineering.code-change + - treeseed.research.synthesis + - treeseed.publishing.documentation adapters: - id: codex-local adapter: codex @@ -139,30 +184,1243 @@ adapters: - communication - platform - workday - sandboxProfileIds: - - read - - unit - - integration - - platform - - connected - defaultSandboxProfiles: - conversation: read - execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 unit: seconds nativeLimits: availableAgentSeconds: 28800 - capabilities: - - communication - - agent-execution - - engineering - - research - - planning - - acting - - verification + offers: + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-conversation + capabilities: + - &a1 + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + - &a2 + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + - &a3 + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + - &a4 + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + - &a5 + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + - &a6 + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + - &a7 + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + - &a8 + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + - &a9 + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + - &a10 + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + - &a11 + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + - &a12 + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + - &a13 + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + - &a14 + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + - &a15 + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + - &a16 + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + - &a17 + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + - &a18 + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + - &a19 + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + - &a20 + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - &a21 + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - &a22 + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + features: [] + configurationSupport: &a23 + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a1 + tier: signed-attestation + status: passed + evidenceDigest: sha256:614820ae211ff15817d54335488a51cc46ddb810f71eea1eff4932196576b55d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5eaf73b3922e41c975e6b6b87f5b2a9f0ee70b245f0b013b796a1ca940224479 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:098e3548a9ded67c2af6650a6c3de3839dc78e4c1bf0d6393267342eaee5fd53 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:05f1fb29606133f489393cbfd0186c5d40e202d9bd57bd5e725ad8fc75d1189c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:02a09c93550dd5aed100963a71b09951153784f2478c46f568411dc5af830963 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a6 + tier: signed-attestation + status: passed + evidenceDigest: sha256:df2749bd55296cba9250705296c0def1794098b0beeb70ea653df48e3b4e2cf1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e4fe5e5049c271cd66efe95b267344844f60d99c59b91bfa9aa822f1ebb1d6d8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e734dea966d1908e12649f9d4815da25f0a7fc36a97d547a9b8b542ae87a10f8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:7cdc5aadba7e9a0c85824b63dfc652b0e89d6a1196bf4c951c561adc767d93a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a10 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e9614b472ae4b5b884b824c36153c0a9bbc379a90aa2cd05888cb32865d166eb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a11 + tier: signed-attestation + status: passed + evidenceDigest: sha256:2c11a18413be46f2ef6f2a4a030228db3d01bcebeef3bc88447a33a9cea3500d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a12 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3c5f86768f9711a477073ac29f54645fbd7a025fafd383e79d3e61bef54149dd + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a13 + tier: signed-attestation + status: passed + evidenceDigest: sha256:70638c878d9ed800e4365c22d671f43b658e04ac891f9c19fe81124f20f0751c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a14 + tier: signed-attestation + status: passed + evidenceDigest: sha256:b46b7bce50da69bf0e0e8cdcaada0da0884209a305e49aaa85c992d56c91ca30 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a15 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e83b07e5be855c9144102a73fc9fa913e869c71bf3942fad707079472b5cfd74 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a16 + tier: signed-attestation + status: passed + evidenceDigest: sha256:89769beb4b5a9b936a32532d0093e522b64875309f38711826b573d56266e884 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a17 + tier: signed-attestation + status: passed + evidenceDigest: sha256:49c6740d1952f33f5e02b3448aed1376ca8715d2b6118d93634c035676720881 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a18 + tier: signed-attestation + status: passed + evidenceDigest: sha256:70d3ee5942cc6d41e7a87780ca51cf19818596315ef8b5c685be4bc31a32a604 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a19 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f17752cab92d16afe95fb11b57e3232f40fa2bec243ddfc37d62112faaa692e5 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a20 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5ceb64dcef53c1833dfbaa16530dd9cb758a5bafbb2bff4a4f19e334ff2eac04 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a21 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0b10776b4b1061f56bf53f6e7bb6f49e96a692e09137a6c7f98bff108b554899 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a22 + tier: signed-attestation + status: passed + evidenceDigest: sha256:9ee06bf527dd12d2db47c1b17636847a42d5fb8277cd59dd406f64deac5e9e0c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:cda6739e612bab5021b3055faf96a71bef9b7bde77b9901451e6c6b01dcbf74e + sandboxProfileId: read + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-engineering + capabilities: + - &a24 + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - &a25 + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - &a26 + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + - &a27 + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + - &a28 + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + - &a29 + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + - &a30 + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + - &a31 + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + - &a32 + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + - &a33 + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + - &a34 + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + - &a35 + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + - &a36 + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + - &a37 + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + features: [] + configurationSupport: *a23 + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a24 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4eab793b13eb3f0fa0ac87dbbf4f7f808d74c51ade648c51361c66afdee97cbf + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a25 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e7e7d8a885455262e486520109662288f556f2fdc2628e56bb190ab1f9cef601 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a26 + tier: signed-attestation + status: passed + evidenceDigest: sha256:afc00a6d112219a158ad70e256e0ad28f3b39cb63ec5b8b3011da9b908e96dbc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a27 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e1ee8dc762f4d60bc56847fbbeddb5fb48260344b9daa5e24de55f62a4900775 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a28 + tier: signed-attestation + status: passed + evidenceDigest: sha256:6aa3006b1cdc6721fa9ffe4776d59ede756960da7050847276650db9d36b27d6 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a29 + tier: signed-attestation + status: passed + evidenceDigest: sha256:79faa546f32c39a3d0ac730a089b9af1e0b42b872ccd8677c06ddcbe57003d8d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a30 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a99115091ea7a95a53c4d3946329f4d73fc1bb35f385b5dd4192fb66d9be83e3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a31 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f947c842eb3c3d76ca0ad04a5cfb2869c67e1d92b3b0189daa71deaf0201a4ea + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a32 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5247cdaf6c816b6763bc7a71b8bab81f06bb9139b3e75afc5a11e7ec4e765444 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a33 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44b130de11d006bab6fc17ddb10f3378983e52ee0483abe5a2781be1d209a70d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a34 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5a7e4e52ecbfe79579d1c1804f26481fa150156f11da5b11fcc4cdcb06ee9a6a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a35 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bdbb4b327f940f4519f4d8a7b5435b26bdefca10284b29ad3f0adf3cacb69966 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a36 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44a3aa274c618904a0c7967b1f1bea35a7a05e007bf0aac450046d75f5c27c9f + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a37 + tier: signed-attestation + status: passed + evidenceDigest: sha256:522b7e6b36ccf654da98748eb9edb2891cba625e824852c49bd47de674a12ceb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:9e74c106355aaf4db53af997cb1733c1bfc3c3e1bf74dd8ac45946c3e688d80d + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-data + capabilities: + - &a38 + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + - &a39 + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + - &a40 + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + - &a41 + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + - &a42 + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + - &a43 + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + - &a44 + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + - &a45 + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + - &a46 + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + - &a47 + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + - &a48 + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + - &a49 + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + - &a50 + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + - &a51 + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + - &a52 + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + - &a53 + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + features: [] + configurationSupport: *a23 + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a38 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a4d7a4cc3a8dc7608af89067c0fe187123ac4dc719d6c82335cd5b21213c05b1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a39 + tier: signed-attestation + status: passed + evidenceDigest: sha256:7dc36fe0eac8b806e55214cf0bcaaea2574ec5f8c9264d32868bef7c1a810574 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a40 + tier: signed-attestation + status: passed + evidenceDigest: sha256:344c10ed776885fec5f106409dcf29a2a8339ceeb08f4b0bd10b1dcc3c2f700b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a41 + tier: signed-attestation + status: passed + evidenceDigest: sha256:28e5fcb040c5460bb94105a38ac38e3c26c737be51f2ed2e41c419d9fd7cd89d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a42 + tier: signed-attestation + status: passed + evidenceDigest: sha256:76a6ea4ee773a77a2a1561e3b8cc68f6060ae5b249834bfcef15bea0d2a3fda1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a43 + tier: signed-attestation + status: passed + evidenceDigest: sha256:e10316b43d39caaa6909c5e148a2851ae8002a43ca98a2789b30e9cbf3183db9 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a44 + tier: signed-attestation + status: passed + evidenceDigest: sha256:dfe4ed2d63ad84015cc01c89ad1b64345360a1bed4ff6e9cbd4592bed5713829 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a45 + tier: signed-attestation + status: passed + evidenceDigest: sha256:20988d2e3a8df4e90d8437e3fbf7657c7799787e7cc2143a010faa2d4008afa4 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a46 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f7e46af3ee9e294fd55b1228075288648e1c1ac45a498021b63c7779c1bbcf71 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a47 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a37b1e8231e07189078fd393cc69ba9c74f43f6f03bfee387eebaf7f44543c5b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a48 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d43eec677395e18ee535526f3f10dbfaa979538729f0f838dfa4d70dbcbe6ca3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a49 + tier: signed-attestation + status: passed + evidenceDigest: sha256:36b2bd5bf94e4ee68f8a144f3e0aee22f143a96f8c45179cd14a07f9c04af561 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a50 + tier: signed-attestation + status: passed + evidenceDigest: sha256:fb4069bc6dfc773dbbec8a255da599bb9ed07958a6208678d20fcf6b95083b79 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a51 + tier: signed-attestation + status: passed + evidenceDigest: sha256:6fa8fe83bd738ae81e788e5320cc919cb37fda627c67d4acff37e7ec883bee69 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a52 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4ea9ff9fbf8dc3519b6f7938fd8da8f551378eb9a375e25d4297f4253250a9d0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:def1d831e8d3f787cb27088acbc964ad5567ec177901dbf6cccea5a97029b613 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:059292b156a609c22141b6569677e5326f0f902e0d846c433184fbf16bd982ac + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-publishing + capabilities: + - &a54 + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + - &a55 + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + - &a56 + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + - &a57 + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + - &a58 + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + - &a59 + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + - &a60 + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + - &a61 + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + - &a62 + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + - &a63 + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + - &a64 + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + - &a65 + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + features: [] + configurationSupport: *a23 + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a54 + tier: signed-attestation + status: passed + evidenceDigest: sha256:caecba7001636881336b5db084d65b45b847abfbe2d0fe80feb111f38cda4ed7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a55 + tier: signed-attestation + status: passed + evidenceDigest: sha256:85fbd93053e55f1fe987e4bf03d45f52144e871db6d6e0a2c24ac43e1703a915 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a56 + tier: signed-attestation + status: passed + evidenceDigest: sha256:493c309f64aecb122753fd44687b3cfae76b44c24fd65b2e982dfb9a85b0bdab + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a57 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4e6af3f9d46f81522572a2c680ba7905079fd41540c41556b5146fa9c3711f75 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a58 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a4afd8179702dd4064170211e0b44685bf4fef68c467e58cd9b418df41256c01 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a59 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1cd13cef3d0f69747735704c34fcc1bd3236c55227e3be42a4e2cab01130826a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a60 + tier: signed-attestation + status: passed + evidenceDigest: sha256:cf82a53e4b6a2e11ba5a0a3c0488987b1eb1107991c52824492f1b334d2afab7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a61 + tier: signed-attestation + status: passed + evidenceDigest: sha256:aa647ee6ccba8910c2fcf5126a5f9b27bb67ec829e499eef79b20ced23f155c2 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a62 + tier: signed-attestation + status: passed + evidenceDigest: sha256:db861fbab926627a1ccd9d6441d8b90e88e7cc434a87e2e323f0eb6c3f433aa6 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a63 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c11e8bfc5f30ccbafa3cf2f31530f781aec9894c3cc1e7c4ffcd3fe74025516e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a64 + tier: signed-attestation + status: passed + evidenceDigest: sha256:9477a0c1b552993f694d7e0cdb63bd606d10bc5a50b19b966869064e69ee0fec + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: *a65 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c5568a6b459f8a469476836e34de13ab6d9623171beea97a8c7a426ef4135929 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:312e467faba5f0ec7747eb61ab3eb2aed1a118bea547a8c84d3431ef6ae0b029 + sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true +ontology: + generation: 2 + digest: sha256:ed47ae4c5556d123c0b64260baab082ba22a5f096536efdaaaab0fb583c414d1 From d448e76a9e750b6c039821f2efe1b6cd7de5ac7e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 00:42:54 -0400 Subject: [PATCH 114/501] fix: synchronize capability provider manifests --- .../capacity-provider-development.json | 70 +- .../host-configs/development-workstation.json | 2 +- package.json | 6 +- ...ynchronize-capacity-provider-manifests.mjs | 68 + scripts/verify-platform.mjs | 10 +- .../template/treeseed.capacity-provider.yaml | 1508 ++++++++++++++++- .../template/treeseed.capacity-provider.yaml | 1508 ++++++++++++++++- .../template/treeseed.capacity-provider.yaml | 1508 ++++++++++++++++- .../template/treeseed.capacity-provider.yaml | 1508 ++++++++++++++++- treeseed.capacity-provider.yaml | 714 +++++--- 10 files changed, 6486 insertions(+), 416 deletions(-) create mode 100644 scripts/synchronize-capacity-provider-manifests.mjs diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json index f86ff0b7..d9f080eb 100644 --- a/deployment/host-configs/capacity-provider-development.json +++ b/deployment/host-configs/capacity-provider-development.json @@ -66,18 +66,72 @@ "offer": { "maxConcurrentRunners": 4, "capabilities": [ - "communication", - "agent-execution", - "engineering", - "research", - "planning", - "acting", - "verification" + "treeseed.coordination.conversation", + "treeseed.coordination.question-answering", + "treeseed.coordination.planning", + "treeseed.coordination.estimation", + "treeseed.coordination.review", + "treeseed.coordination.reporting", + "treeseed.coordination.human-task-routing", + "treeseed.coordination.decision-support", + "treeseed.research.web", + "treeseed.research.literature", + "treeseed.research.market", + "treeseed.research.repository", + "treeseed.research.dataset-discovery", + "treeseed.research.retrieval", + "treeseed.research.extraction", + "treeseed.research.verification", + "treeseed.research.citation", + "treeseed.research.synthesis", + "treeseed.research.experimentation", + "treeseed.engineering.architecture", + "treeseed.engineering.repository-analysis", + "treeseed.engineering.review", + "treeseed.engineering.code-change", + "treeseed.engineering.refactoring", + "treeseed.engineering.dependency-update", + "treeseed.engineering.build", + "treeseed.engineering.unit-testing", + "treeseed.engineering.integration-testing", + "treeseed.engineering.end-to-end-testing", + "treeseed.engineering.debugging", + "treeseed.engineering.performance-analysis", + "treeseed.engineering.accessibility", + "treeseed.engineering.infrastructure", + "treeseed.data.source-connection", + "treeseed.data.extraction", + "treeseed.data.ingestion", + "treeseed.data.synchronization", + "treeseed.data.schema-inference", + "treeseed.data.schema-mapping", + "treeseed.data.normalization", + "treeseed.data.transformation", + "treeseed.data.enrichment", + "treeseed.data.entity-resolution", + "treeseed.data.validation", + "treeseed.data.quality-analysis", + "treeseed.data.lineage", + "treeseed.data.statistical-analysis", + "treeseed.data.visualization", + "treeseed.data.export", + "treeseed.publishing.drafting", + "treeseed.publishing.editing", + "treeseed.publishing.translation", + "treeseed.publishing.structured-content", + "treeseed.publishing.documentation", + "treeseed.publishing.cms", + "treeseed.publishing.repository", + "treeseed.publishing.package-artifact", + "treeseed.publishing.site-build", + "treeseed.publishing.site-deployment", + "treeseed.publishing.syndication", + "treeseed.publishing.release-notes" ] } }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" } } } diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json index 6bab1417..cc49bbbe 100644 --- a/deployment/host-configs/development-workstation.json +++ b/deployment/host-configs/development-workstation.json @@ -95,7 +95,7 @@ "TREESEED_PROVIDER_MODE": "development" }, "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 4\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v4\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - communication\n - agent-execution\n - research\n - planning\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - agent-execution\n - engineering\n - verification\n - repository_work\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\n - repository_work\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n sandboxProfileIds:\n - read\n - unit\n - integration\n - platform\n - connected\n defaultSandboxProfiles:\n conversation: read\n execution: unit\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n capabilities:\n - communication\n - agent-execution\n - engineering\n - research\n - planning\n - acting\n - verification\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\n" + "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" } } }, diff --git a/package.json b/package.json index 152db1cb..dad7d8a6 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,14 @@ "node": ">=22" }, "scripts": { + "capacity-provider:sync": "node scripts/synchronize-capacity-provider-manifests.mjs", + "capacity-provider:check": "node scripts/synchronize-capacity-provider-manifests.mjs --check", "guarantees:plan": "node scripts/plan-composition-guarantees.mjs", "guarantees:run": "node scripts/run-composition-guarantees.mjs", "test:guarantee-plan": "node scripts/test-composition-guarantee-plan.mjs", "test:guarantee-run": "node scripts/test-composition-guarantee-run.mjs", "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", - "verify": "node scripts/verify-platform.mjs", - "verify:local": "node scripts/verify-platform.mjs" + "verify": "npm run capacity-provider:check && node scripts/verify-platform.mjs", + "verify:local": "npm run capacity-provider:check && node scripts/verify-platform.mjs" } } diff --git a/scripts/synchronize-capacity-provider-manifests.mjs b/scripts/synchronize-capacity-provider-manifests.mjs new file mode 100644 index 00000000..2caef918 --- /dev/null +++ b/scripts/synchronize-capacity-provider-manifests.mjs @@ -0,0 +1,68 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { parse, stringify } from '../packages/sdk/node_modules/yaml/dist/index.js'; +import { + CORE_CAPABILITY_DEFINITIONS, + CORE_CAPABILITY_ONTOLOGY_GENERATION, + capabilityContractDigest, + capabilityOfferDigest, + capabilityOfferSchema, +} from '../packages/sdk/dist/capacity-provider/index.js'; + +const root = resolve(import.meta.dirname, '..'); +const checkOnly = process.argv.includes('--check'); +const providerPath = resolve(root, 'treeseed.capacity-provider.yaml'); +const hostPaths = [ + resolve(root, 'deployment/host-configs/development-workstation.json'), + resolve(root, 'deployment/host-configs/capacity-provider-development.json'), +]; +const templateIds = ['platform-local-managed-codex', 'platform-local-managed-ai', 'platform-market-codex', 'platform-external-codex']; +const definitions = new Map(CORE_CAPABILITY_DEFINITIONS.map((definition) => [definition.id, definition])); +const reference = (id) => { + const definition = definitions.get(id); + if (!definition) throw new Error(`Provider offer references unknown core capability ${id}.`); + return { id: definition.id, version: definition.version, digest: definition.digest }; +}; +const emit = (path, content) => { + if (checkOnly) { + if (readFileSync(path, 'utf8') !== content) throw new Error(`${path.slice(root.length + 1)} is not synchronized with the active SDK capability ontology.`); + return; + } + writeFileSync(path, content); +}; + +function synchronizeOffer(offer) { + const capabilities = offer.capabilities.map(({ id }) => reference(id)); + const conformance = offer.conformance.map((entry) => { + const capability = reference(entry.capability.id); + return { ...entry, capability, evidenceDigest: capabilityContractDigest({ capability, tier: entry.tier, suite: entry.suite }) }; + }); + const { offerDigest: _oldDigest, ...rest } = offer; + const material = { ...rest, capabilities, conformance }; + return capabilityOfferSchema.parse({ ...material, offerDigest: capabilityOfferDigest(material) }); +} + +const provider = parse(readFileSync(providerPath, 'utf8')); +provider.schemaVersion = 5; +provider.configuration.generation = 'local-battery-v5'; +provider.ontology = { + generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, + digest: capabilityContractDigest({ generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, definitions: CORE_CAPABILITY_DEFINITIONS }), +}; +for (const adapter of provider.adapters) adapter.offers = adapter.offers.map((binding) => ({ ...binding, offer: synchronizeOffer(binding.offer) })); +const canonicalProvider = stringify(provider, { lineWidth: 0 }); +emit(providerPath, canonicalProvider); +for (const templateId of templateIds) emit(resolve(root, 'templates', templateId, 'template/treeseed.capacity-provider.yaml'), canonicalProvider); + +for (const hostPath of hostPaths) { + const host = JSON.parse(readFileSync(hostPath, 'utf8')); + const embedded = structuredClone(provider); + const dedicated = host.host.role === 'capacity-provider'; + embedded.configuration.generation = dedicated ? 'managed-provider-development-v5' : 'managed-development-v5'; + embedded.identity.displayName = dedicated ? 'TreeSeed managed capacity provider' : 'TreeSeed managed development provider'; + embedded.metadata.custody = 'manager-owned'; + host.components.agent.configuration.files['treeseed.capacity-provider.yaml'] = stringify(embedded, { lineWidth: 0 }); + const enrollment = host.components.agent.configuration.providerEnrollment; + if (enrollment?.offer) enrollment.offer.capabilities = [...new Set(embedded.adapters.flatMap((adapter) => adapter.offers.flatMap((binding) => binding.offer.capabilities.map(({ id }) => id))))]; + emit(hostPath, `${JSON.stringify(host, null, 2)}\n`); +} diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 8c149354..2433e1d3 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -50,10 +50,10 @@ if ((seed.match(/role: library/gmu) ?? []).length !== 16 || (seed.match(/library if (!/digest: sha256:[a-f0-9]{64}/u.test(seed)) fail('Canonical seed is not digest-bound.'); const provider = read('treeseed.capacity-provider.yaml'); -for (const required of ['schemaVersion: 4', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: microvm', 'runtime: kata-runtime-rs-qemu', 'defaultDenyNetwork: true']) { +for (const required of ['schemaVersion: 5', 'ontology:', 'offers:', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: microvm', 'runtime: kata-runtime-rs-qemu', 'defaultDenyNetwork: true']) { if (!provider.includes(required)) fail(`Unified provider manifest is missing ${required}.`); } -if (provider.includes('isolation: process') || provider.includes('isolation: worker')) fail('Unified provider manifest must not retain non-microVM execution adapters.'); +if (provider.includes('schemaVersion: 4') || provider.includes('isolation: process') || provider.includes('isolation: worker')) fail('Unified provider manifest must not retain v4 or non-microVM execution adapters.'); for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCredentialRef:']) if (provider.includes(forbidden)) fail(`Unified provider manifest retains ${forbidden}.`); const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); @@ -96,12 +96,16 @@ if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_ISSUER || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_AUDIENCE !== treeDxAudience || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ALLOWED_ALGS !== 'RS256') fail('API and TreeDX must share the generation 7 RS256 issuer, audience, and private JWKS discovery contract.'); if (host.components?.agent?.connections?.['control-plane']?.kind !== 'local' || host.components?.treedx?.connections?.['control-plane']?.kind !== 'local') fail('Integrated Agent and TreeDX components require explicit local control-plane connections.'); +const embeddedProvider = host.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; +if (!embeddedProvider.startsWith('schemaVersion: 5\n') || !embeddedProvider.includes('\nontology:\n') || embeddedProvider.includes('schemaVersion: 4') || embeddedProvider.includes('sandboxProfileIds:') || embeddedProvider.includes('\n capabilities:\n - communication\n')) fail('Integrated Agent must receive only the synchronized capability-driven provider manifest v5.'); if (host.components?.admin?.connections?.api?.kind !== 'local') fail('Managed Admin requires an explicit local or remote API connection.'); if (Object.keys(host.components?.admin?.aliases ?? {}).length) fail('Managed Admin must use its component-owned canonical alias rather than a forbidden host override.'); if (JSON.stringify(aliases.sort()) !== JSON.stringify(['api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the permitted local alias overrides.'); const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider-development.json')); if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); +const embeddedDedicatedProvider = providerHost.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; +if (!embeddedDedicatedProvider.startsWith('schemaVersion: 5\n') || !embeddedDedicatedProvider.includes('\nontology:\n') || embeddedDedicatedProvider.includes('schemaVersion: 4') || embeddedDedicatedProvider.includes('sandboxProfileIds:')) fail('Dedicated capacity-provider fixture must receive only the synchronized provider manifest v5.'); const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); @@ -206,4 +210,4 @@ if (marketRoots.length > 2) fail(`Platform contains duplicate Market worksets: $ for (const path of ['packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml', 'packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml', 'scripts/guarantees/verify-agent-capability.ts']) requireFile(path); const agentGuaranteeDefinitions = readdirSync(resolve(root, 'packages/market-guarantee-catalog/guarantees'), { recursive: true }).filter((path) => typeof path === 'string' && path.endsWith('.guarantee.yaml')).length; -console.log(JSON.stringify({ ok: true, inventoryAuthority: 'portable-seed-bundle', projects: 16, primaryRepositories: 16, projectLibraries: 16, fixtureRepositories: 1, owners: 2, providerModel: 'unified-battery-v3', lanes: ['communication', 'platform', 'workday'], gitlinks: 0, marketCheckouts: marketRoots.length, agentGuaranteeDefinitions, hostedDeployment: false })); +console.log(JSON.stringify({ ok: true, inventoryAuthority: 'portable-seed-bundle', projects: 16, primaryRepositories: 16, projectLibraries: 16, fixtureRepositories: 1, owners: 2, providerModel: 'capability-marketplace-v5', lanes: ['communication', 'platform', 'workday'], gitlinks: 0, marketCheckouts: marketRoots.length, agentGuaranteeDefinitions, hostedDeployment: false })); diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml index 6c107a33..d1aa071b 100644 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 4 +schemaVersion: 5 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v4 + generation: local-battery-v5 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -33,6 +33,16 @@ sandbox: diskBytes: 8589934592 processLimit: 512 outputBytes: 67108864 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: unit guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -43,6 +53,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: integration guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -53,6 +73,16 @@ sandbox: diskBytes: 25769803776 processLimit: 2048 outputBytes: 268435456 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: platform guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -63,6 +93,16 @@ sandbox: diskBytes: 34359738368 processLimit: 4096 outputBytes: 536870912 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: connected guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -73,6 +113,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime lanes: - id: communication purpose: communication @@ -85,10 +135,9 @@ lanes: queueLimit: 100 timeoutSeconds: 120 capabilities: - - communication - - agent-execution - - research - - planning + - treeseed.coordination.conversation + - treeseed.engineering.repository-analysis + - treeseed.research.synthesis - id: platform purpose: platform priority: 70 @@ -100,10 +149,9 @@ lanes: queueLimit: 100 timeoutSeconds: 900 capabilities: - - agent-execution - - engineering - - verification - - repository_work + - treeseed.engineering.architecture + - treeseed.engineering.code-change + - treeseed.engineering.review - id: workday purpose: workday priority: 50 @@ -118,13 +166,10 @@ lanes: amount: 600 unit: seconds capabilities: - - agent-execution - - engineering - - research - - planning - - acting - - verification - - repository_work + - treeseed.coordination.planning + - treeseed.engineering.code-change + - treeseed.research.synthesis + - treeseed.publishing.documentation adapters: - id: codex-local adapter: codex @@ -139,30 +184,1425 @@ adapters: - communication - platform - workday - sandboxProfileIds: - - read - - unit - - integration - - platform - - connected - defaultSandboxProfiles: - conversation: read - execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 unit: seconds nativeLimits: availableAgentSeconds: 28800 - capabilities: - - communication - - agent-execution - - engineering - - research - - planning - - acting - - verification + offers: + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-conversation + capabilities: + - id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + - id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + - id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + - id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + - id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + - id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + - id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + - id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + - id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + - id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + - id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + - id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + - id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + - id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + - id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + - id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + - id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + - id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + - id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + tier: signed-attestation + status: passed + evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + tier: signed-attestation + status: passed + evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + tier: signed-attestation + status: passed + evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + tier: signed-attestation + status: passed + evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + tier: signed-attestation + status: passed + evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + tier: signed-attestation + status: passed + evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + tier: signed-attestation + status: passed + evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + tier: signed-attestation + status: passed + evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + tier: signed-attestation + status: passed + evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 + sandboxProfileId: read + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-engineering + capabilities: + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + - id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + - id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + - id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + - id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + - id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + - id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + - id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + - id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + - id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + - id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + tier: signed-attestation + status: passed + evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + tier: signed-attestation + status: passed + evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-data + capabilities: + - id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + - id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + - id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + - id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + - id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + - id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + - id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + - id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + - id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + - id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + - id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + - id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + - id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + - id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + - id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + - id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + tier: signed-attestation + status: passed + evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + tier: signed-attestation + status: passed + evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + tier: signed-attestation + status: passed + evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + tier: signed-attestation + status: passed + evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + tier: signed-attestation + status: passed + evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-publishing + capabilities: + - id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + - id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + - id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + - id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + - id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + - id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + - id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + - id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + - id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + - id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + - id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + - id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + tier: signed-attestation + status: passed + evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + tier: signed-attestation + status: passed + evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + tier: signed-attestation + status: passed + evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + tier: signed-attestation + status: passed + evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + tier: signed-attestation + status: passed + evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 + sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true +ontology: + generation: 3 + digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml index 6c107a33..d1aa071b 100644 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 4 +schemaVersion: 5 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v4 + generation: local-battery-v5 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -33,6 +33,16 @@ sandbox: diskBytes: 8589934592 processLimit: 512 outputBytes: 67108864 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: unit guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -43,6 +53,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: integration guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -53,6 +73,16 @@ sandbox: diskBytes: 25769803776 processLimit: 2048 outputBytes: 268435456 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: platform guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -63,6 +93,16 @@ sandbox: diskBytes: 34359738368 processLimit: 4096 outputBytes: 536870912 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: connected guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -73,6 +113,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime lanes: - id: communication purpose: communication @@ -85,10 +135,9 @@ lanes: queueLimit: 100 timeoutSeconds: 120 capabilities: - - communication - - agent-execution - - research - - planning + - treeseed.coordination.conversation + - treeseed.engineering.repository-analysis + - treeseed.research.synthesis - id: platform purpose: platform priority: 70 @@ -100,10 +149,9 @@ lanes: queueLimit: 100 timeoutSeconds: 900 capabilities: - - agent-execution - - engineering - - verification - - repository_work + - treeseed.engineering.architecture + - treeseed.engineering.code-change + - treeseed.engineering.review - id: workday purpose: workday priority: 50 @@ -118,13 +166,10 @@ lanes: amount: 600 unit: seconds capabilities: - - agent-execution - - engineering - - research - - planning - - acting - - verification - - repository_work + - treeseed.coordination.planning + - treeseed.engineering.code-change + - treeseed.research.synthesis + - treeseed.publishing.documentation adapters: - id: codex-local adapter: codex @@ -139,30 +184,1425 @@ adapters: - communication - platform - workday - sandboxProfileIds: - - read - - unit - - integration - - platform - - connected - defaultSandboxProfiles: - conversation: read - execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 unit: seconds nativeLimits: availableAgentSeconds: 28800 - capabilities: - - communication - - agent-execution - - engineering - - research - - planning - - acting - - verification + offers: + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-conversation + capabilities: + - id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + - id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + - id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + - id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + - id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + - id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + - id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + - id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + - id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + - id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + - id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + - id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + - id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + - id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + - id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + - id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + - id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + - id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + - id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + tier: signed-attestation + status: passed + evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + tier: signed-attestation + status: passed + evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + tier: signed-attestation + status: passed + evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + tier: signed-attestation + status: passed + evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + tier: signed-attestation + status: passed + evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + tier: signed-attestation + status: passed + evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + tier: signed-attestation + status: passed + evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + tier: signed-attestation + status: passed + evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + tier: signed-attestation + status: passed + evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 + sandboxProfileId: read + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-engineering + capabilities: + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + - id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + - id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + - id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + - id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + - id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + - id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + - id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + - id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + - id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + - id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + tier: signed-attestation + status: passed + evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + tier: signed-attestation + status: passed + evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-data + capabilities: + - id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + - id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + - id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + - id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + - id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + - id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + - id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + - id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + - id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + - id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + - id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + - id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + - id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + - id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + - id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + - id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + tier: signed-attestation + status: passed + evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + tier: signed-attestation + status: passed + evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + tier: signed-attestation + status: passed + evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + tier: signed-attestation + status: passed + evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + tier: signed-attestation + status: passed + evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-publishing + capabilities: + - id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + - id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + - id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + - id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + - id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + - id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + - id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + - id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + - id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + - id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + - id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + - id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + tier: signed-attestation + status: passed + evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + tier: signed-attestation + status: passed + evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + tier: signed-attestation + status: passed + evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + tier: signed-attestation + status: passed + evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + tier: signed-attestation + status: passed + evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 + sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true +ontology: + generation: 3 + digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml index 6c107a33..d1aa071b 100644 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 4 +schemaVersion: 5 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v4 + generation: local-battery-v5 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -33,6 +33,16 @@ sandbox: diskBytes: 8589934592 processLimit: 512 outputBytes: 67108864 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: unit guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -43,6 +53,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: integration guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -53,6 +73,16 @@ sandbox: diskBytes: 25769803776 processLimit: 2048 outputBytes: 268435456 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: platform guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -63,6 +93,16 @@ sandbox: diskBytes: 34359738368 processLimit: 4096 outputBytes: 536870912 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: connected guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -73,6 +113,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime lanes: - id: communication purpose: communication @@ -85,10 +135,9 @@ lanes: queueLimit: 100 timeoutSeconds: 120 capabilities: - - communication - - agent-execution - - research - - planning + - treeseed.coordination.conversation + - treeseed.engineering.repository-analysis + - treeseed.research.synthesis - id: platform purpose: platform priority: 70 @@ -100,10 +149,9 @@ lanes: queueLimit: 100 timeoutSeconds: 900 capabilities: - - agent-execution - - engineering - - verification - - repository_work + - treeseed.engineering.architecture + - treeseed.engineering.code-change + - treeseed.engineering.review - id: workday purpose: workday priority: 50 @@ -118,13 +166,10 @@ lanes: amount: 600 unit: seconds capabilities: - - agent-execution - - engineering - - research - - planning - - acting - - verification - - repository_work + - treeseed.coordination.planning + - treeseed.engineering.code-change + - treeseed.research.synthesis + - treeseed.publishing.documentation adapters: - id: codex-local adapter: codex @@ -139,30 +184,1425 @@ adapters: - communication - platform - workday - sandboxProfileIds: - - read - - unit - - integration - - platform - - connected - defaultSandboxProfiles: - conversation: read - execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 unit: seconds nativeLimits: availableAgentSeconds: 28800 - capabilities: - - communication - - agent-execution - - engineering - - research - - planning - - acting - - verification + offers: + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-conversation + capabilities: + - id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + - id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + - id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + - id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + - id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + - id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + - id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + - id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + - id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + - id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + - id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + - id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + - id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + - id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + - id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + - id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + - id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + - id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + - id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + tier: signed-attestation + status: passed + evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + tier: signed-attestation + status: passed + evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + tier: signed-attestation + status: passed + evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + tier: signed-attestation + status: passed + evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + tier: signed-attestation + status: passed + evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + tier: signed-attestation + status: passed + evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + tier: signed-attestation + status: passed + evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + tier: signed-attestation + status: passed + evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + tier: signed-attestation + status: passed + evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 + sandboxProfileId: read + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-engineering + capabilities: + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + - id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + - id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + - id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + - id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + - id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + - id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + - id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + - id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + - id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + - id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + tier: signed-attestation + status: passed + evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + tier: signed-attestation + status: passed + evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-data + capabilities: + - id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + - id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + - id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + - id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + - id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + - id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + - id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + - id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + - id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + - id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + - id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + - id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + - id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + - id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + - id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + - id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + tier: signed-attestation + status: passed + evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + tier: signed-attestation + status: passed + evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + tier: signed-attestation + status: passed + evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + tier: signed-attestation + status: passed + evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + tier: signed-attestation + status: passed + evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-publishing + capabilities: + - id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + - id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + - id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + - id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + - id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + - id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + - id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + - id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + - id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + - id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + - id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + - id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + tier: signed-attestation + status: passed + evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + tier: signed-attestation + status: passed + evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + tier: signed-attestation + status: passed + evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + tier: signed-attestation + status: passed + evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + tier: signed-attestation + status: passed + evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 + sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true +ontology: + generation: 3 + digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml index 6c107a33..d1aa071b 100644 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml @@ -1,9 +1,9 @@ -schemaVersion: 4 +schemaVersion: 5 ownership: type: team teamId: team:treeseed configuration: - generation: local-battery-v4 + generation: local-battery-v5 identity: privateKeyRef: data://identity-v3.json displayName: TreeSeed local capacity battery @@ -33,6 +33,16 @@ sandbox: diskBytes: 8589934592 processLimit: 512 outputBytes: 67108864 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: unit guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -43,6 +53,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: integration guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -53,6 +73,16 @@ sandbox: diskBytes: 25769803776 processLimit: 2048 outputBytes: 268435456 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: platform guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -63,6 +93,16 @@ sandbox: diskBytes: 34359738368 processLimit: 4096 outputBytes: 536870912 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime - id: connected guestImage: treeseed/sandbox-codex guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a @@ -73,6 +113,16 @@ sandbox: diskBytes: 17179869184 processLimit: 1024 outputBytes: 134217728 + lineage: + baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b + provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 + architectures: + - amd64 + - arm64 + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime lanes: - id: communication purpose: communication @@ -85,10 +135,9 @@ lanes: queueLimit: 100 timeoutSeconds: 120 capabilities: - - communication - - agent-execution - - research - - planning + - treeseed.coordination.conversation + - treeseed.engineering.repository-analysis + - treeseed.research.synthesis - id: platform purpose: platform priority: 70 @@ -100,10 +149,9 @@ lanes: queueLimit: 100 timeoutSeconds: 900 capabilities: - - agent-execution - - engineering - - verification - - repository_work + - treeseed.engineering.architecture + - treeseed.engineering.code-change + - treeseed.engineering.review - id: workday purpose: workday priority: 50 @@ -118,13 +166,10 @@ lanes: amount: 600 unit: seconds capabilities: - - agent-execution - - engineering - - research - - planning - - acting - - verification - - repository_work + - treeseed.coordination.planning + - treeseed.engineering.code-change + - treeseed.research.synthesis + - treeseed.publishing.documentation adapters: - id: codex-local adapter: codex @@ -139,30 +184,1425 @@ adapters: - communication - platform - workday - sandboxProfileIds: - - read - - unit - - integration - - platform - - connected - defaultSandboxProfiles: - conversation: read - execution: unit maxConcurrentWorkers: 4 minimumAssignmentDuration: amount: 600 unit: seconds nativeLimits: availableAgentSeconds: 28800 - capabilities: - - communication - - agent-execution - - engineering - - research - - planning - - acting - - verification + offers: + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-conversation + capabilities: + - id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + - id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + - id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + - id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + - id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + - id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + - id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + - id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + - id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + - id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + - id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + - id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + - id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + - id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + - id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + - id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + - id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + - id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + - id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd + tier: signed-attestation + status: passed + evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 + tier: signed-attestation + status: passed + evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a + tier: signed-attestation + status: passed + evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 + tier: signed-attestation + status: passed + evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee + tier: signed-attestation + status: passed + evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 + tier: signed-attestation + status: passed + evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a + tier: signed-attestation + status: passed + evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c + tier: signed-attestation + status: passed + evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e + tier: signed-attestation + status: passed + evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 + sandboxProfileId: read + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-engineering + capabilities: + - id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + - id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + - id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + - id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + - id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + - id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + - id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + - id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + - id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + - id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + - id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + - id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + - id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + - id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f + tier: signed-attestation + status: passed + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 + tier: signed-attestation + status: passed + evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 + tier: signed-attestation + status: passed + evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e + tier: signed-attestation + status: passed + evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 + tier: signed-attestation + status: passed + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 + tier: signed-attestation + status: passed + evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-data + capabilities: + - id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + - id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + - id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + - id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + - id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + - id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + - id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + - id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + - id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + - id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + - id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + - id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + - id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + - id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + - id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + - id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc + tier: signed-attestation + status: passed + evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 + tier: signed-attestation + status: passed + evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 + tier: signed-attestation + status: passed + evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a + tier: signed-attestation + status: passed + evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 + tier: signed-attestation + status: passed + evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 + tier: signed-attestation + status: passed + evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 + tier: signed-attestation + status: passed + evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf + tier: signed-attestation + status: passed + evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 + sandboxProfileId: unit + - offer: + schemaVersion: treeseed.capability-offer/v1 + offerId: codex-publishing + capabilities: + - id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + - id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + - id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + - id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + - id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + - id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + - id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + - id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + - id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + - id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + - id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + - id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + features: [] + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true + permissionClasses: + - content-policy + - repository-policy + - network-policy + - shell-policy + - tool-policy + contextModes: + - inline + - manifest + inputContracts: [] + outputContracts: [] + interactionModes: + - asynchronous + - interactive + conformance: + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 + tier: signed-attestation + status: passed + evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 + tier: signed-attestation + status: passed + evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d + tier: signed-attestation + status: passed + evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b + tier: signed-attestation + status: passed + evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab + tier: signed-attestation + status: passed + evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 + tier: signed-attestation + status: passed + evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 + tier: signed-attestation + status: passed + evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 + tier: signed-attestation + status: passed + evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 + tier: signed-attestation + status: passed + evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e + tier: signed-attestation + status: passed + evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + - schemaVersion: treeseed.capability-conformance/v1 + providerId: runtime-provider + capability: + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 + tier: signed-attestation + status: passed + evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed + suite: null + issuedAt: 2026-08-30T00:00:00.000Z + expiresAt: null + signature: + keyId: runtime-provider + algorithm: Ed25519 + value: materialize-at-runtime + limits: {} + commercial: + currency: null + estimatedCost: null + region: null + trust: + - provider-signed + offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 + sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true +ontology: + generation: 3 + digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml index 6484034e..d1aa071b 100644 --- a/treeseed.capacity-provider.yaml +++ b/treeseed.capacity-provider.yaml @@ -195,96 +195,74 @@ adapters: schemaVersion: treeseed.capability-offer/v1 offerId: codex-conversation capabilities: - - &a1 - id: treeseed.coordination.conversation + - id: treeseed.coordination.conversation version: 1.0.0 digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - &a2 - id: treeseed.coordination.question-answering + - id: treeseed.coordination.question-answering version: 1.0.0 digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - &a3 - id: treeseed.coordination.planning + - id: treeseed.coordination.planning version: 1.0.0 digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - &a4 - id: treeseed.coordination.estimation + - id: treeseed.coordination.estimation version: 1.0.0 digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - &a5 - id: treeseed.coordination.review + - id: treeseed.coordination.review version: 1.0.0 digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - &a6 - id: treeseed.coordination.reporting + - id: treeseed.coordination.reporting version: 1.0.0 digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - &a7 - id: treeseed.coordination.human-task-routing + - id: treeseed.coordination.human-task-routing version: 1.0.0 digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - &a8 - id: treeseed.coordination.decision-support + - id: treeseed.coordination.decision-support version: 1.0.0 digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - &a9 - id: treeseed.research.web + - id: treeseed.research.web version: 1.0.0 digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - &a10 - id: treeseed.research.literature + - id: treeseed.research.literature version: 1.0.0 digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - &a11 - id: treeseed.research.market + - id: treeseed.research.market version: 1.0.0 digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - &a12 - id: treeseed.research.repository + - id: treeseed.research.repository version: 1.0.0 digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - &a13 - id: treeseed.research.dataset-discovery + - id: treeseed.research.dataset-discovery version: 1.0.0 digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - &a14 - id: treeseed.research.retrieval + - id: treeseed.research.retrieval version: 1.0.0 digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - &a15 - id: treeseed.research.extraction + - id: treeseed.research.extraction version: 1.0.0 digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - &a16 - id: treeseed.research.verification + - id: treeseed.research.verification version: 1.0.0 digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - &a17 - id: treeseed.research.citation + - id: treeseed.research.citation version: 1.0.0 digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - &a18 - id: treeseed.research.synthesis + - id: treeseed.research.synthesis version: 1.0.0 digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - &a19 - id: treeseed.research.experimentation + - id: treeseed.research.experimentation version: 1.0.0 digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - &a20 - id: treeseed.engineering.architecture + - id: treeseed.engineering.architecture version: 1.0.0 digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - &a21 - id: treeseed.engineering.repository-analysis + - id: treeseed.engineering.repository-analysis version: 1.0.0 digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - &a22 - id: treeseed.engineering.review + - id: treeseed.engineering.review version: 1.0.0 digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 features: [] - configurationSupport: &a23 + configurationSupport: instructions.system: required: true preferred: true @@ -320,10 +298,13 @@ adapters: conformance: - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a1 + capability: + id: treeseed.coordination.conversation + version: 1.0.0 + digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 tier: signed-attestation status: passed - evidenceDigest: sha256:614820ae211ff15817d54335488a51cc46ddb810f71eea1eff4932196576b55d + evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -333,10 +314,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a2 + capability: + id: treeseed.coordination.question-answering + version: 1.0.0 + digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 tier: signed-attestation status: passed - evidenceDigest: sha256:5eaf73b3922e41c975e6b6b87f5b2a9f0ee70b245f0b013b796a1ca940224479 + evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -346,10 +330,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a3 + capability: + id: treeseed.coordination.planning + version: 1.0.0 + digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 tier: signed-attestation status: passed - evidenceDigest: sha256:098e3548a9ded67c2af6650a6c3de3839dc78e4c1bf0d6393267342eaee5fd53 + evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -359,10 +346,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a4 + capability: + id: treeseed.coordination.estimation + version: 1.0.0 + digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 tier: signed-attestation status: passed - evidenceDigest: sha256:05f1fb29606133f489393cbfd0186c5d40e202d9bd57bd5e725ad8fc75d1189c + evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -372,10 +362,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a5 + capability: + id: treeseed.coordination.review + version: 1.0.0 + digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd tier: signed-attestation status: passed - evidenceDigest: sha256:02a09c93550dd5aed100963a71b09951153784f2478c46f568411dc5af830963 + evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -385,10 +378,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a6 + capability: + id: treeseed.coordination.reporting + version: 1.0.0 + digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 tier: signed-attestation status: passed - evidenceDigest: sha256:df2749bd55296cba9250705296c0def1794098b0beeb70ea653df48e3b4e2cf1 + evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -398,10 +394,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a7 + capability: + id: treeseed.coordination.human-task-routing + version: 1.0.0 + digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 tier: signed-attestation status: passed - evidenceDigest: sha256:e4fe5e5049c271cd66efe95b267344844f60d99c59b91bfa9aa822f1ebb1d6d8 + evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -411,10 +410,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a8 + capability: + id: treeseed.coordination.decision-support + version: 1.0.0 + digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a tier: signed-attestation status: passed - evidenceDigest: sha256:e734dea966d1908e12649f9d4815da25f0a7fc36a97d547a9b8b542ae87a10f8 + evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -424,10 +426,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a9 + capability: + id: treeseed.research.web + version: 1.0.0 + digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 tier: signed-attestation status: passed - evidenceDigest: sha256:7cdc5aadba7e9a0c85824b63dfc652b0e89d6a1196bf4c951c561adc767d93a7 + evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -437,10 +442,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a10 + capability: + id: treeseed.research.literature + version: 1.0.0 + digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee tier: signed-attestation status: passed - evidenceDigest: sha256:e9614b472ae4b5b884b824c36153c0a9bbc379a90aa2cd05888cb32865d166eb + evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -450,10 +458,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a11 + capability: + id: treeseed.research.market + version: 1.0.0 + digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 tier: signed-attestation status: passed - evidenceDigest: sha256:2c11a18413be46f2ef6f2a4a030228db3d01bcebeef3bc88447a33a9cea3500d + evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -463,10 +474,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a12 + capability: + id: treeseed.research.repository + version: 1.0.0 + digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 tier: signed-attestation status: passed - evidenceDigest: sha256:3c5f86768f9711a477073ac29f54645fbd7a025fafd383e79d3e61bef54149dd + evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -476,10 +490,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a13 + capability: + id: treeseed.research.dataset-discovery + version: 1.0.0 + digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a tier: signed-attestation status: passed - evidenceDigest: sha256:70638c878d9ed800e4365c22d671f43b658e04ac891f9c19fe81124f20f0751c + evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -489,10 +506,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a14 + capability: + id: treeseed.research.retrieval + version: 1.0.0 + digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c tier: signed-attestation status: passed - evidenceDigest: sha256:b46b7bce50da69bf0e0e8cdcaada0da0884209a305e49aaa85c992d56c91ca30 + evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -502,10 +522,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a15 + capability: + id: treeseed.research.extraction + version: 1.0.0 + digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 tier: signed-attestation status: passed - evidenceDigest: sha256:e83b07e5be855c9144102a73fc9fa913e869c71bf3942fad707079472b5cfd74 + evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -515,10 +538,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a16 + capability: + id: treeseed.research.verification + version: 1.0.0 + digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 tier: signed-attestation status: passed - evidenceDigest: sha256:89769beb4b5a9b936a32532d0093e522b64875309f38711826b573d56266e884 + evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -528,10 +554,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a17 + capability: + id: treeseed.research.citation + version: 1.0.0 + digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 tier: signed-attestation status: passed - evidenceDigest: sha256:49c6740d1952f33f5e02b3448aed1376ca8715d2b6118d93634c035676720881 + evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -541,10 +570,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a18 + capability: + id: treeseed.research.synthesis + version: 1.0.0 + digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 tier: signed-attestation status: passed - evidenceDigest: sha256:70d3ee5942cc6d41e7a87780ca51cf19818596315ef8b5c685be4bc31a32a604 + evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -554,10 +586,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a19 + capability: + id: treeseed.research.experimentation + version: 1.0.0 + digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e tier: signed-attestation status: passed - evidenceDigest: sha256:f17752cab92d16afe95fb11b57e3232f40fa2bec243ddfc37d62112faaa692e5 + evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -567,10 +602,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a20 + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f tier: signed-attestation status: passed - evidenceDigest: sha256:5ceb64dcef53c1833dfbaa16530dd9cb758a5bafbb2bff4a4f19e334ff2eac04 + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -580,10 +618,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a21 + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 tier: signed-attestation status: passed - evidenceDigest: sha256:0b10776b4b1061f56bf53f6e7bb6f49e96a692e09137a6c7f98bff108b554899 + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -593,10 +634,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a22 + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 tier: signed-attestation status: passed - evidenceDigest: sha256:9ee06bf527dd12d2db47c1b17636847a42d5fb8277cd59dd406f64deac5e9e0c + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -611,70 +655,74 @@ adapters: region: null trust: - provider-signed - offerDigest: sha256:cda6739e612bab5021b3055faf96a71bef9b7bde77b9901451e6c6b01dcbf74e + offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 sandboxProfileId: read - offer: schemaVersion: treeseed.capability-offer/v1 offerId: codex-engineering capabilities: - - &a24 - id: treeseed.engineering.architecture + - id: treeseed.engineering.architecture version: 1.0.0 digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - &a25 - id: treeseed.engineering.repository-analysis + - id: treeseed.engineering.repository-analysis version: 1.0.0 digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - &a26 - id: treeseed.engineering.code-change + - id: treeseed.engineering.code-change version: 1.0.0 digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - &a27 - id: treeseed.engineering.refactoring + - id: treeseed.engineering.refactoring version: 1.0.0 digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - &a28 - id: treeseed.engineering.dependency-update + - id: treeseed.engineering.dependency-update version: 1.0.0 digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - &a29 - id: treeseed.engineering.build + - id: treeseed.engineering.build version: 1.0.0 digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - &a30 - id: treeseed.engineering.unit-testing + - id: treeseed.engineering.unit-testing version: 1.0.0 digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - &a31 - id: treeseed.engineering.integration-testing + - id: treeseed.engineering.integration-testing version: 1.0.0 digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - &a32 - id: treeseed.engineering.end-to-end-testing + - id: treeseed.engineering.end-to-end-testing version: 1.0.0 digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - &a33 - id: treeseed.engineering.debugging + - id: treeseed.engineering.debugging version: 1.0.0 digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - &a34 - id: treeseed.engineering.review + - id: treeseed.engineering.review version: 1.0.0 digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - &a35 - id: treeseed.engineering.performance-analysis + - id: treeseed.engineering.performance-analysis version: 1.0.0 digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - &a36 - id: treeseed.engineering.accessibility + - id: treeseed.engineering.accessibility version: 1.0.0 digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - &a37 - id: treeseed.engineering.infrastructure + - id: treeseed.engineering.infrastructure version: 1.0.0 digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 features: [] - configurationSupport: *a23 + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true permissionClasses: - content-policy - repository-policy @@ -692,10 +740,13 @@ adapters: conformance: - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a24 + capability: + id: treeseed.engineering.architecture + version: 1.0.0 + digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f tier: signed-attestation status: passed - evidenceDigest: sha256:4eab793b13eb3f0fa0ac87dbbf4f7f808d74c51ade648c51361c66afdee97cbf + evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -705,10 +756,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a25 + capability: + id: treeseed.engineering.repository-analysis + version: 1.0.0 + digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 tier: signed-attestation status: passed - evidenceDigest: sha256:e7e7d8a885455262e486520109662288f556f2fdc2628e56bb190ab1f9cef601 + evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -718,10 +772,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a26 + capability: + id: treeseed.engineering.code-change + version: 1.0.0 + digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 tier: signed-attestation status: passed - evidenceDigest: sha256:afc00a6d112219a158ad70e256e0ad28f3b39cb63ec5b8b3011da9b908e96dbc + evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -731,10 +788,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a27 + capability: + id: treeseed.engineering.refactoring + version: 1.0.0 + digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 tier: signed-attestation status: passed - evidenceDigest: sha256:e1ee8dc762f4d60bc56847fbbeddb5fb48260344b9daa5e24de55f62a4900775 + evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -744,10 +804,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a28 + capability: + id: treeseed.engineering.dependency-update + version: 1.0.0 + digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 tier: signed-attestation status: passed - evidenceDigest: sha256:6aa3006b1cdc6721fa9ffe4776d59ede756960da7050847276650db9d36b27d6 + evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -757,10 +820,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a29 + capability: + id: treeseed.engineering.build + version: 1.0.0 + digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 tier: signed-attestation status: passed - evidenceDigest: sha256:79faa546f32c39a3d0ac730a089b9af1e0b42b872ccd8677c06ddcbe57003d8d + evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -770,10 +836,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a30 + capability: + id: treeseed.engineering.unit-testing + version: 1.0.0 + digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e tier: signed-attestation status: passed - evidenceDigest: sha256:a99115091ea7a95a53c4d3946329f4d73fc1bb35f385b5dd4192fb66d9be83e3 + evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -783,10 +852,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a31 + capability: + id: treeseed.engineering.integration-testing + version: 1.0.0 + digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 tier: signed-attestation status: passed - evidenceDigest: sha256:f947c842eb3c3d76ca0ad04a5cfb2869c67e1d92b3b0189daa71deaf0201a4ea + evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -796,10 +868,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a32 + capability: + id: treeseed.engineering.end-to-end-testing + version: 1.0.0 + digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 tier: signed-attestation status: passed - evidenceDigest: sha256:5247cdaf6c816b6763bc7a71b8bab81f06bb9139b3e75afc5a11e7ec4e765444 + evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -809,10 +884,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a33 + capability: + id: treeseed.engineering.debugging + version: 1.0.0 + digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 tier: signed-attestation status: passed - evidenceDigest: sha256:44b130de11d006bab6fc17ddb10f3378983e52ee0483abe5a2781be1d209a70d + evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -822,10 +900,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a34 + capability: + id: treeseed.engineering.review + version: 1.0.0 + digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 tier: signed-attestation status: passed - evidenceDigest: sha256:5a7e4e52ecbfe79579d1c1804f26481fa150156f11da5b11fcc4cdcb06ee9a6a + evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -835,10 +916,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a35 + capability: + id: treeseed.engineering.performance-analysis + version: 1.0.0 + digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 tier: signed-attestation status: passed - evidenceDigest: sha256:bdbb4b327f940f4519f4d8a7b5435b26bdefca10284b29ad3f0adf3cacb69966 + evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -848,10 +932,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a36 + capability: + id: treeseed.engineering.accessibility + version: 1.0.0 + digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 tier: signed-attestation status: passed - evidenceDigest: sha256:44a3aa274c618904a0c7967b1f1bea35a7a05e007bf0aac450046d75f5c27c9f + evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -861,10 +948,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a37 + capability: + id: treeseed.engineering.infrastructure + version: 1.0.0 + digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 tier: signed-attestation status: passed - evidenceDigest: sha256:522b7e6b36ccf654da98748eb9edb2891cba625e824852c49bd47de674a12ceb + evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -879,78 +969,80 @@ adapters: region: null trust: - provider-signed - offerDigest: sha256:9e74c106355aaf4db53af997cb1733c1bfc3c3e1bf74dd8ac45946c3e688d80d + offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 sandboxProfileId: unit - offer: schemaVersion: treeseed.capability-offer/v1 offerId: codex-data capabilities: - - &a38 - id: treeseed.data.source-connection + - id: treeseed.data.source-connection version: 1.0.0 digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - &a39 - id: treeseed.data.extraction + - id: treeseed.data.extraction version: 1.0.0 digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - &a40 - id: treeseed.data.ingestion + - id: treeseed.data.ingestion version: 1.0.0 digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - &a41 - id: treeseed.data.synchronization + - id: treeseed.data.synchronization version: 1.0.0 digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - &a42 - id: treeseed.data.schema-inference + - id: treeseed.data.schema-inference version: 1.0.0 digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - &a43 - id: treeseed.data.schema-mapping + - id: treeseed.data.schema-mapping version: 1.0.0 digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - &a44 - id: treeseed.data.normalization + - id: treeseed.data.normalization version: 1.0.0 digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - &a45 - id: treeseed.data.transformation + - id: treeseed.data.transformation version: 1.0.0 digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - &a46 - id: treeseed.data.enrichment + - id: treeseed.data.enrichment version: 1.0.0 digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - &a47 - id: treeseed.data.entity-resolution + - id: treeseed.data.entity-resolution version: 1.0.0 digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - &a48 - id: treeseed.data.validation + - id: treeseed.data.validation version: 1.0.0 digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - &a49 - id: treeseed.data.quality-analysis + - id: treeseed.data.quality-analysis version: 1.0.0 digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - &a50 - id: treeseed.data.lineage + - id: treeseed.data.lineage version: 1.0.0 digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - &a51 - id: treeseed.data.statistical-analysis + - id: treeseed.data.statistical-analysis version: 1.0.0 digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - &a52 - id: treeseed.data.visualization + - id: treeseed.data.visualization version: 1.0.0 digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - &a53 - id: treeseed.data.export + - id: treeseed.data.export version: 1.0.0 digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 features: [] - configurationSupport: *a23 + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true permissionClasses: - content-policy - repository-policy @@ -968,10 +1060,13 @@ adapters: conformance: - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a38 + capability: + id: treeseed.data.source-connection + version: 1.0.0 + digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 tier: signed-attestation status: passed - evidenceDigest: sha256:a4d7a4cc3a8dc7608af89067c0fe187123ac4dc719d6c82335cd5b21213c05b1 + evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -981,10 +1076,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a39 + capability: + id: treeseed.data.extraction + version: 1.0.0 + digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 tier: signed-attestation status: passed - evidenceDigest: sha256:7dc36fe0eac8b806e55214cf0bcaaea2574ec5f8c9264d32868bef7c1a810574 + evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -994,10 +1092,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a40 + capability: + id: treeseed.data.ingestion + version: 1.0.0 + digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 tier: signed-attestation status: passed - evidenceDigest: sha256:344c10ed776885fec5f106409dcf29a2a8339ceeb08f4b0bd10b1dcc3c2f700b + evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1007,10 +1108,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a41 + capability: + id: treeseed.data.synchronization + version: 1.0.0 + digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc tier: signed-attestation status: passed - evidenceDigest: sha256:28e5fcb040c5460bb94105a38ac38e3c26c737be51f2ed2e41c419d9fd7cd89d + evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1020,10 +1124,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a42 + capability: + id: treeseed.data.schema-inference + version: 1.0.0 + digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 tier: signed-attestation status: passed - evidenceDigest: sha256:76a6ea4ee773a77a2a1561e3b8cc68f6060ae5b249834bfcef15bea0d2a3fda1 + evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1033,10 +1140,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a43 + capability: + id: treeseed.data.schema-mapping + version: 1.0.0 + digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 tier: signed-attestation status: passed - evidenceDigest: sha256:e10316b43d39caaa6909c5e148a2851ae8002a43ca98a2789b30e9cbf3183db9 + evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1046,10 +1156,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a44 + capability: + id: treeseed.data.normalization + version: 1.0.0 + digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 tier: signed-attestation status: passed - evidenceDigest: sha256:dfe4ed2d63ad84015cc01c89ad1b64345360a1bed4ff6e9cbd4592bed5713829 + evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1059,10 +1172,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a45 + capability: + id: treeseed.data.transformation + version: 1.0.0 + digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 tier: signed-attestation status: passed - evidenceDigest: sha256:20988d2e3a8df4e90d8437e3fbf7657c7799787e7cc2143a010faa2d4008afa4 + evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1072,10 +1188,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a46 + capability: + id: treeseed.data.enrichment + version: 1.0.0 + digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 tier: signed-attestation status: passed - evidenceDigest: sha256:f7e46af3ee9e294fd55b1228075288648e1c1ac45a498021b63c7779c1bbcf71 + evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1085,10 +1204,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a47 + capability: + id: treeseed.data.entity-resolution + version: 1.0.0 + digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a tier: signed-attestation status: passed - evidenceDigest: sha256:a37b1e8231e07189078fd393cc69ba9c74f43f6f03bfee387eebaf7f44543c5b + evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1098,10 +1220,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a48 + capability: + id: treeseed.data.validation + version: 1.0.0 + digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 tier: signed-attestation status: passed - evidenceDigest: sha256:d43eec677395e18ee535526f3f10dbfaa979538729f0f838dfa4d70dbcbe6ca3 + evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1111,10 +1236,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a49 + capability: + id: treeseed.data.quality-analysis + version: 1.0.0 + digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 tier: signed-attestation status: passed - evidenceDigest: sha256:36b2bd5bf94e4ee68f8a144f3e0aee22f143a96f8c45179cd14a07f9c04af561 + evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1124,10 +1252,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a50 + capability: + id: treeseed.data.lineage + version: 1.0.0 + digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 tier: signed-attestation status: passed - evidenceDigest: sha256:fb4069bc6dfc773dbbec8a255da599bb9ed07958a6208678d20fcf6b95083b79 + evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1137,10 +1268,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a51 + capability: + id: treeseed.data.statistical-analysis + version: 1.0.0 + digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 tier: signed-attestation status: passed - evidenceDigest: sha256:6fa8fe83bd738ae81e788e5320cc919cb37fda627c67d4acff37e7ec883bee69 + evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1150,10 +1284,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a52 + capability: + id: treeseed.data.visualization + version: 1.0.0 + digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf tier: signed-attestation status: passed - evidenceDigest: sha256:4ea9ff9fbf8dc3519b6f7938fd8da8f551378eb9a375e25d4297f4253250a9d0 + evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1163,10 +1300,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a53 + capability: + id: treeseed.data.export + version: 1.0.0 + digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 tier: signed-attestation status: passed - evidenceDigest: sha256:def1d831e8d3f787cb27088acbc964ad5567ec177901dbf6cccea5a97029b613 + evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1181,62 +1321,68 @@ adapters: region: null trust: - provider-signed - offerDigest: sha256:059292b156a609c22141b6569677e5326f0f902e0d846c433184fbf16bd982ac + offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 sandboxProfileId: unit - offer: schemaVersion: treeseed.capability-offer/v1 offerId: codex-publishing capabilities: - - &a54 - id: treeseed.publishing.drafting + - id: treeseed.publishing.drafting version: 1.0.0 digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - &a55 - id: treeseed.publishing.editing + - id: treeseed.publishing.editing version: 1.0.0 digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - &a56 - id: treeseed.publishing.translation + - id: treeseed.publishing.translation version: 1.0.0 digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - &a57 - id: treeseed.publishing.structured-content + - id: treeseed.publishing.structured-content version: 1.0.0 digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - &a58 - id: treeseed.publishing.documentation + - id: treeseed.publishing.documentation version: 1.0.0 digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - &a59 - id: treeseed.publishing.cms + - id: treeseed.publishing.cms version: 1.0.0 digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - &a60 - id: treeseed.publishing.repository + - id: treeseed.publishing.repository version: 1.0.0 digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - &a61 - id: treeseed.publishing.package-artifact + - id: treeseed.publishing.package-artifact version: 1.0.0 digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - &a62 - id: treeseed.publishing.site-build + - id: treeseed.publishing.site-build version: 1.0.0 digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - &a63 - id: treeseed.publishing.site-deployment + - id: treeseed.publishing.site-deployment version: 1.0.0 digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - &a64 - id: treeseed.publishing.syndication + - id: treeseed.publishing.syndication version: 1.0.0 digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - &a65 - id: treeseed.publishing.release-notes + - id: treeseed.publishing.release-notes version: 1.0.0 digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 features: [] - configurationSupport: *a23 + configurationSupport: + instructions.system: + required: true + preferred: true + instructions.task: + required: true + preferred: true + instructions.templates: + required: true + preferred: true + context.queries: + required: true + preferred: true + tools.policy: + required: true + preferred: true + intelligence.reasoning-effort: + required: true + preferred: true permissionClasses: - content-policy - repository-policy @@ -1254,10 +1400,13 @@ adapters: conformance: - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a54 + capability: + id: treeseed.publishing.drafting + version: 1.0.0 + digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 tier: signed-attestation status: passed - evidenceDigest: sha256:caecba7001636881336b5db084d65b45b847abfbe2d0fe80feb111f38cda4ed7 + evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1267,10 +1416,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a55 + capability: + id: treeseed.publishing.editing + version: 1.0.0 + digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 tier: signed-attestation status: passed - evidenceDigest: sha256:85fbd93053e55f1fe987e4bf03d45f52144e871db6d6e0a2c24ac43e1703a915 + evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1280,10 +1432,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a56 + capability: + id: treeseed.publishing.translation + version: 1.0.0 + digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 tier: signed-attestation status: passed - evidenceDigest: sha256:493c309f64aecb122753fd44687b3cfae76b44c24fd65b2e982dfb9a85b0bdab + evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1293,10 +1448,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a57 + capability: + id: treeseed.publishing.structured-content + version: 1.0.0 + digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d tier: signed-attestation status: passed - evidenceDigest: sha256:4e6af3f9d46f81522572a2c680ba7905079fd41540c41556b5146fa9c3711f75 + evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1306,10 +1464,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a58 + capability: + id: treeseed.publishing.documentation + version: 1.0.0 + digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b tier: signed-attestation status: passed - evidenceDigest: sha256:a4afd8179702dd4064170211e0b44685bf4fef68c467e58cd9b418df41256c01 + evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1319,10 +1480,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a59 + capability: + id: treeseed.publishing.cms + version: 1.0.0 + digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab tier: signed-attestation status: passed - evidenceDigest: sha256:1cd13cef3d0f69747735704c34fcc1bd3236c55227e3be42a4e2cab01130826a + evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1332,10 +1496,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a60 + capability: + id: treeseed.publishing.repository + version: 1.0.0 + digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 tier: signed-attestation status: passed - evidenceDigest: sha256:cf82a53e4b6a2e11ba5a0a3c0488987b1eb1107991c52824492f1b334d2afab7 + evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1345,10 +1512,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a61 + capability: + id: treeseed.publishing.package-artifact + version: 1.0.0 + digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 tier: signed-attestation status: passed - evidenceDigest: sha256:aa647ee6ccba8910c2fcf5126a5f9b27bb67ec829e499eef79b20ced23f155c2 + evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1358,10 +1528,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a62 + capability: + id: treeseed.publishing.site-build + version: 1.0.0 + digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 tier: signed-attestation status: passed - evidenceDigest: sha256:db861fbab926627a1ccd9d6441d8b90e88e7cc434a87e2e323f0eb6c3f433aa6 + evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1371,10 +1544,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a63 + capability: + id: treeseed.publishing.site-deployment + version: 1.0.0 + digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 tier: signed-attestation status: passed - evidenceDigest: sha256:c11e8bfc5f30ccbafa3cf2f31530f781aec9894c3cc1e7c4ffcd3fe74025516e + evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1384,10 +1560,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a64 + capability: + id: treeseed.publishing.syndication + version: 1.0.0 + digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e tier: signed-attestation status: passed - evidenceDigest: sha256:9477a0c1b552993f694d7e0cdb63bd606d10bc5a50b19b966869064e69ee0fec + evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1397,10 +1576,13 @@ adapters: value: materialize-at-runtime - schemaVersion: treeseed.capability-conformance/v1 providerId: runtime-provider - capability: *a65 + capability: + id: treeseed.publishing.release-notes + version: 1.0.0 + digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 tier: signed-attestation status: passed - evidenceDigest: sha256:c5568a6b459f8a469476836e34de13ab6d9623171beea97a8c7a426ef4135929 + evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed suite: null issuedAt: 2026-08-30T00:00:00.000Z expiresAt: null @@ -1415,12 +1597,12 @@ adapters: region: null trust: - provider-signed - offerDigest: sha256:312e467faba5f0ec7747eb61ab3eb2aed1a118bea547a8c84d3431ef6ae0b029 + offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 sandboxProfileId: unit connections: [] metadata: custody: local-only sharedBattery: true ontology: - generation: 2 - digest: sha256:ed47ae4c5556d123c0b64260baab082ba22a5f096536efdaaaab0fb583c414d1 + generation: 3 + digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 From 2e47b76823f053e624a84d54a0a5d20c98723bd9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 01:29:56 -0400 Subject: [PATCH 115/501] release: compose capability marketplace candidate --- .../integration-releases/development.json | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 7b95f187..a504a0ee 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,53 +1,53 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc175", - "generation": 136, + "release": "0.1.0~rc176", + "generation": 137, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "ef04ca918e70860fdbf2f940a3de0ffcb1ff4f97" + "commit": "d448e76a9e750b6c039821f2efe1b6cd7de5ac7e" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "ee2d5ca80e5a8160191f2b812b38d9e075c49d8f", - "tag": "0.1.0-rc.175" + "commit": "c6d0340917ed6880afb0e524b0958a7cec3a2aa9", + "tag": "0.1.0-rc.176" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.58", + "version": "0.13.0-rc.59", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.58.tgz", - "sha256": "ce7ee59e021c80ba544f781d9b844ef05127c16d2b9d34bae1e48dfa7c89fcb7" + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.59.tgz", + "sha256": "a27f92cab609d451990eb9b67319e77fa2d54eec5ca4e8a360f8dfebf09fdffb" } }, { "id": "api", "packageName": "@treeseed/api", - "version": "0.8.0-rc.53", + "version": "0.8.0-rc.58", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.53/treeseed-api-0.8.0-rc.53.tgz", - "sha256": "a163099f1c339141a2ac8669e32837f034fba739b4cc34d533edbd26a86b143c" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/treeseed-api-0.8.0-rc.58.tgz", + "sha256": "e54ce15eb775448a3099418424eb145290c41f6e64af0756cb8bdb15490772f6" } }, { "id": "ui", "packageName": "@treeseed/ui", - "version": "0.12.18-rc.10", + "version": "0.12.18-rc.11", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.10.tgz", - "sha256": "dff2c0e8abcc543fc9846c0779e9d1898e15d2fe495a33581c24da84febfb530" + "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", + "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", - "version": "0.12.60-rc.7", + "version": "0.12.60-rc.8", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.7.tgz", - "sha256": "4d33adfad6fc2b97263861e0dfb8f7e53a4e8f8b458bde9d43d5e74d05dd6b35" + "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", + "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { @@ -80,19 +80,19 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.35", + "version": "0.13.0-rc.37", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.35.tgz", - "sha256": "bd7b1604cf23b67702a1bb9584b49544f84ca9a0d835f51d82f826022ea347c7" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.37.tgz", + "sha256": "467ba95576d91ce52643bae8217f6129cea9e37c319e455167dfe1c175310487" } }, { "id": "treedx", "packageName": "@treeseed/treedx", - "version": "0.3.0-rc.11", + "version": "0.3.0-rc.12", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.11.tgz", - "sha256": "e15f9e10e0f000c073b9e5545d77499a4fcb7019c4fa467838507db982f02346" + "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", + "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, { @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc56-1", + "release": "0.8.0~rc58-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.56/component-release.json", - "sha256": "cf7a281a2b9ddf26d5fd01aac6a4bdd11ef58e664d1390f57cb02dd955cf432f" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/component-release.json", + "sha256": "72f0372594b76d08d55d09c2d3d8d45126a62d76825184b5b4716451d68e973c" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.56/compose.yml", - "sha256": "a3ff065bd6855c89c3be7a2d3ffc4d5dcf1c657e889b31c3f9ad661002a37fe8" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/compose.yml", + "sha256": "47aa8128eadbea8bb3db82b3322cf7224c6992a23e8b78fa93c7dec311a84107" } } ] @@ -151,34 +151,34 @@ }, { "componentId": "agent", - "release": "0.13.0~rc34-1", + "release": "0.13.0~rc36-1", "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.34/component-release.json", - "sha256": "4c84bd2a790c759cc8819900e7b76265ec747bd3032950c1248ddb069728d3a5" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", + "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.34/compose.yml", - "sha256": "83a07f4a7ae1a348ef1083900cb83f5e85deda6533bf7d96d6ce4236994752f9" + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", + "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" } } ] }, { "componentId": "treedx", - "release": "0.3.0~rc11-1", + "release": "0.3.0~rc12-1", "manifest": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/component-release.json", - "sha256": "34deb7385382e2acadda7cf580ea869e24ac597c72ff913851ad166a197656a1" + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", + "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.11/compose.yml", - "sha256": "42baeb7fe0aac50bf43c9acd22840ca094e547310e70194ac79bc3eb4bd907c5" + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", + "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } } ] @@ -252,5 +252,5 @@ ] } ], - "createdAt": "2026-08-30T18:48:17.000Z" + "createdAt": "2026-08-31T05:25:00.000Z" } From 041d824c269ab5fa2222528570eda343b492ced2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 01:56:48 -0400 Subject: [PATCH 116/501] policy: enforce canonical deployment boundaries (#275) --- AGENTS.md | 4 ++++ scripts/verify-platform.mjs | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 55e1e892..0dbb17fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,6 +2,10 @@ This is the public TreeSeed installer and integration workspace. Preserve independent package builds and route infrastructure changes through SDK reconciliation and `trsd`. Market and Market API are first-party portfolio projects governed through the same seed, reconciliation, and exact-ref custody model as the other TreeSeed repositories. Their hosted deployment remains fail-closed until the reviewed OpenTofu topology restores it. +## Branch and deployment boundary + +`main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments. + ## Project library The Platform library is `treeseed-ai/platform-library`; its TreeDX binding is authoritative. Start with `trsd library show platform` and `trsd library status platform`. Discover with `paths`, `search`, `query`, or `context`, and read a known file with `trsd library read platform --ref `. Use exact commits for reproducible work and protected `main` or `staging` only for deliberate moving-head inspection. diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 2433e1d3..531bf38a 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -207,6 +207,19 @@ const repositoryRoots = ['packages', 'templates', '.fixtures', 'starters', 'prod const marketRoots = repositoryRoots.filter((path) => ['market', 'market-api'].includes(basename(path))); if (marketRoots.length > 2) fail(`Platform contains duplicate Market worksets: ${marketRoots.join(', ')}`); +const primaryProjectRoots = ['.', 'packages/deployment', 'packages/api', 'packages/treedx', 'packages/sdk', 'packages/ui', 'packages/cli', 'packages/core', 'packages/admin', 'packages/agent', 'packages/reviewer', 'packages/ai', 'templates/engineering', 'templates/research', 'services/market-api']; +const branchBoundary = '`main` is the only production branch and maps only to the `production` deployment environment.'; +for (const projectRoot of primaryProjectRoots) { + const agentsPath = resolve(root, projectRoot, 'AGENTS.md'); + if (!existsSync(agentsPath) || !readFileSync(agentsPath, 'utf8').includes(branchBoundary)) fail(`${projectRoot} must enforce the canonical main/production and staging/integration boundary in AGENTS.md.`); + const workflowsRoot = resolve(root, projectRoot, '.github/workflows'); + if (!existsSync(workflowsRoot)) continue; + for (const workflow of readdirSync(workflowsRoot, { recursive: true }).filter((path) => typeof path === 'string' && /\.ya?ml$/u.test(path))) { + const source = readFileSync(resolve(workflowsRoot, workflow), 'utf8'); + if (/^\s*environment:\s*(?:development|preview|stable)\b|^\s*environment:[^\n]*github-pages|refs\/heads\/(?:development|preview)\b|\bCHANNEL=preview\b|--preview-id\b|WORKFLOW_PREVIEW/mu.test(source)) fail(`${projectRoot}/.github/workflows/${workflow} violates the canonical deployment boundary.`); + } +} + for (const path of ['packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml', 'packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml', 'scripts/guarantees/verify-agent-capability.ts']) requireFile(path); const agentGuaranteeDefinitions = readdirSync(resolve(root, 'packages/market-guarantee-catalog/guarantees'), { recursive: true }).filter((path) => typeof path === 'string' && path.endsWith('.guarantee.yaml')).length; From 5dfec75d204cbe1aca2ee1e6d2fa61141442655e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 02:04:13 -0400 Subject: [PATCH 117/501] fix(ci): make canonical boundary verification self-contained (#276) * fix(ci): make platform verification self-contained * fix(ci): scope cross-repository audit to checkouts --- .github/workflows/verify.yml | 1 + package.json | 4 ++++ scripts/synchronize-capacity-provider-manifests.mjs | 4 ++-- scripts/verify-platform.mjs | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index d9973f2e..9d67fc29 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -23,4 +23,5 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 24 + - run: npm install --ignore-scripts --no-audit --no-fund --package-lock=false - run: npm run verify diff --git a/package.json b/package.json index dad7d8a6..761c8c90 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,10 @@ "engines": { "node": ">=22" }, + "devDependencies": { + "@treeseed/sdk": "0.13.0-rc.59", + "yaml": "2.9.0" + }, "scripts": { "capacity-provider:sync": "node scripts/synchronize-capacity-provider-manifests.mjs", "capacity-provider:check": "node scripts/synchronize-capacity-provider-manifests.mjs --check", diff --git a/scripts/synchronize-capacity-provider-manifests.mjs b/scripts/synchronize-capacity-provider-manifests.mjs index 2caef918..0d5586d2 100644 --- a/scripts/synchronize-capacity-provider-manifests.mjs +++ b/scripts/synchronize-capacity-provider-manifests.mjs @@ -1,13 +1,13 @@ import { readFileSync, writeFileSync } from 'node:fs'; import { resolve } from 'node:path'; -import { parse, stringify } from '../packages/sdk/node_modules/yaml/dist/index.js'; +import { parse, stringify } from 'yaml'; import { CORE_CAPABILITY_DEFINITIONS, CORE_CAPABILITY_ONTOLOGY_GENERATION, capabilityContractDigest, capabilityOfferDigest, capabilityOfferSchema, -} from '../packages/sdk/dist/capacity-provider/index.js'; +} from '@treeseed/sdk/capacity-provider'; const root = resolve(import.meta.dirname, '..'); const checkOnly = process.argv.includes('--check'); diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs index 531bf38a..76f4db57 100644 --- a/scripts/verify-platform.mjs +++ b/scripts/verify-platform.mjs @@ -207,7 +207,7 @@ const repositoryRoots = ['packages', 'templates', '.fixtures', 'starters', 'prod const marketRoots = repositoryRoots.filter((path) => ['market', 'market-api'].includes(basename(path))); if (marketRoots.length > 2) fail(`Platform contains duplicate Market worksets: ${marketRoots.join(', ')}`); -const primaryProjectRoots = ['.', 'packages/deployment', 'packages/api', 'packages/treedx', 'packages/sdk', 'packages/ui', 'packages/cli', 'packages/core', 'packages/admin', 'packages/agent', 'packages/reviewer', 'packages/ai', 'templates/engineering', 'templates/research', 'services/market-api']; +const primaryProjectRoots = ['.', 'packages/deployment', 'packages/api', 'packages/treedx', 'packages/sdk', 'packages/ui', 'packages/cli', 'packages/core', 'packages/admin', 'packages/agent', 'packages/reviewer', 'packages/ai', 'templates/engineering', 'templates/research', 'services/market-api'].filter((projectRoot) => projectRoot === '.' || existsSync(resolve(root, projectRoot, '.git'))); const branchBoundary = '`main` is the only production branch and maps only to the `production` deployment environment.'; for (const projectRoot of primaryProjectRoots) { const agentsPath = resolve(root, projectRoot, 'AGENTS.md'); From 57788f959c780b0feb36aa2fa99008850714f6fe Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 04:21:30 -0400 Subject: [PATCH 118/501] Integrate R2 mirror release composition --- .../integration-releases/development.json | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index a504a0ee..f2141371 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,35 +1,35 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc176", - "generation": 137, + "release": "0.1.0~rc177", + "generation": 138, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "d448e76a9e750b6c039821f2efe1b6cd7de5ac7e" + "commit": "5dfec752c0f0a831c2b0bc20a8c3374ee29446bd" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "c6d0340917ed6880afb0e524b0958a7cec3a2aa9", - "tag": "0.1.0-rc.176" + "commit": "b4a9d63998c4487bee34d12b081518003f972fc2", + "tag": "0.1.0-rc.177" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.59", + "version": "0.13.0-rc.60", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.59.tgz", - "sha256": "a27f92cab609d451990eb9b67319e77fa2d54eec5ca4e8a360f8dfebf09fdffb" + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.60.tgz", + "sha256": "b98120e2995bf7f98fb1bf76e60314915d0764bdf1b4156d7cc0f1640b19d652" } }, { "id": "api", "packageName": "@treeseed/api", - "version": "0.8.0-rc.58", + "version": "0.8.0-rc.59", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/treeseed-api-0.8.0-rc.58.tgz", - "sha256": "e54ce15eb775448a3099418424eb145290c41f6e64af0756cb8bdb15490772f6" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/treeseed-api-0.8.0-rc.59.tgz", + "sha256": "aa6909f2470cb116c3af763e785c65745fcaa0a2809eccc96feb5ae1b1115afc" } }, { @@ -80,10 +80,10 @@ { "id": "cli", "packageName": "@treeseed/cli", - "version": "0.13.0-rc.37", + "version": "0.13.0-rc.38", "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.37.tgz", - "sha256": "467ba95576d91ce52643bae8217f6129cea9e37c319e455167dfe1c175310487" + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.38.tgz", + "sha256": "5212b922d338f4c2571b11e3fde2a922a72d9782bc5a96cfb5c1263647da3c86" } }, { @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc58-1", + "release": "0.8.0~rc59-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/component-release.json", - "sha256": "72f0372594b76d08d55d09c2d3d8d45126a62d76825184b5b4716451d68e973c" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/component-release.json", + "sha256": "6307220cb551d579c99ab684cb22a09c551ad2b4326ec24fca758709b61c1ce7" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.58/compose.yml", - "sha256": "47aa8128eadbea8bb3db82b3322cf7224c6992a23e8b78fa93c7dec311a84107" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/compose.yml", + "sha256": "3cafd6deba444ce563d8d5f8dd8df3f58aabdcdd4780586e5ae9e921f8c9e14c" } } ] From 6b75557a89825a76a96e1de9e4e09d92ef876253 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 04:52:04 -0400 Subject: [PATCH 119/501] Integrate API rc60 release composition --- .../integration-releases/development.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index f2141371..3b436207 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc177", - "generation": 138, + "release": "0.1.0~rc178", + "generation": 139, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "5dfec752c0f0a831c2b0bc20a8c3374ee29446bd" + "commit": "e5a707b60396c1966e54916b258da66e02a1a02f" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "b4a9d63998c4487bee34d12b081518003f972fc2", - "tag": "0.1.0-rc.177" + "commit": "68c52d46cbac82635a75ea4297e907a049b9aa6c", + "tag": "0.1.0-rc.178" }, "hostPayloads": [ { @@ -26,10 +26,10 @@ { "id": "api", "packageName": "@treeseed/api", - "version": "0.8.0-rc.59", + "version": "0.8.0-rc.60", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/treeseed-api-0.8.0-rc.59.tgz", - "sha256": "aa6909f2470cb116c3af763e785c65745fcaa0a2809eccc96feb5ae1b1115afc" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", + "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, { @@ -117,17 +117,17 @@ "components": [ { "componentId": "api", - "release": "0.8.0~rc59-1", + "release": "0.8.0~rc60-1", "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/component-release.json", - "sha256": "6307220cb551d579c99ab684cb22a09c551ad2b4326ec24fca758709b61c1ce7" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", + "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [ { "path": "compose.yml", "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.59/compose.yml", - "sha256": "3cafd6deba444ce563d8d5f8dd8df3f58aabdcdd4780586e5ae9e921f8c9e14c" + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", + "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } } ] From fe26f60c7555c1c9b94c7057a12351e2d4205ebd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 05:10:39 -0400 Subject: [PATCH 120/501] Integrate manager rc179 release composition --- deployment/integration-releases/development.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json index 3b436207..71cc772a 100644 --- a/deployment/integration-releases/development.json +++ b/deployment/integration-releases/development.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc178", - "generation": 139, + "release": "0.1.0~rc179", + "generation": 140, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", - "commit": "e5a707b60396c1966e54916b258da66e02a1a02f" + "commit": "14e4df35d7f2f91f9b8a8cc89a7e8b6fcd0817de" }, "deployment": { "repository": "treeseed-ai/deployment", - "commit": "68c52d46cbac82635a75ea4297e907a049b9aa6c", - "tag": "0.1.0-rc.178" + "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", + "tag": "0.1.0-rc.179" }, "hostPayloads": [ { From 886401ff3d686b7277b7484a82d94985c7da3c5f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 06:27:56 -0400 Subject: [PATCH 121/501] policy: require quota-efficient issue delivery --- .github/ISSUE_TEMPLATE/config.yml | 2 + .github/ISSUE_TEMPLATE/implementation.yml | 65 +++++++++++++++++++++++ AGENTS.md | 6 +++ 3 files changed, 73 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/implementation.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..8005e322 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] diff --git a/.github/ISSUE_TEMPLATE/implementation.yml b/.github/ISSUE_TEMPLATE/implementation.yml new file mode 100644 index 00000000..3100fe91 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/implementation.yml @@ -0,0 +1,65 @@ +name: Bounded implementation +description: Define one reviewable Platform integration outcome and its authoritative evidence. +title: "" +labels: [] +body: + - type: markdown + attributes: + value: >- + Issues are the plan and status authority. Update this body instead of posting + routine progress comments; retain detailed verification in GitHub Actions. + - type: textarea + id: objective + attributes: + label: Objective + description: State the concrete outcome and owning repository boundaries. + validations: + required: true + - type: textarea + id: exact-inputs + attributes: + label: Exact inputs + description: Record protected-branch heads, released artifacts, schemas, and dependencies. + validations: + required: true + - type: textarea + id: interfaces + attributes: + label: Interfaces and behavior + description: Define public commands, schemas, configuration, and failure behavior. + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance gates + description: List deterministic, package, integration, read-back, noop, and rollback evidence. + validations: + required: true + - type: textarea + id: dependencies + attributes: + label: Dependencies and authority + description: Link prerequisite Issues and identify any human or environment approval boundary. + validations: + required: true + - type: textarea + id: rollback + attributes: + label: Rollback + description: Identify the retained immutable state and exact recovery path. + validations: + required: true + - type: textarea + id: evidence + attributes: + label: Actions evidence + description: Maintain a compact table of authoritative workflow runs and artifacts. + value: | + | Gate | Run/artifact | Status | + |---|---|---| + | Focused verification | pending | pending | + | Release/read-back | pending | pending | + | Managed acceptance | pending | pending | + validations: + required: true diff --git a/AGENTS.md b/AGENTS.md index 0dbb17fc..13e2acbd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,6 +2,12 @@ This is the public TreeSeed installer and integration workspace. Preserve independent package builds and route infrastructure changes through SDK reconciliation and `trsd`. Market and Market API are first-party portfolio projects governed through the same seed, reconciliation, and exact-ref custody model as the other TreeSeed repositories. Their hosted deployment remains fail-closed until the reviewed OpenTofu topology restores it. +## Efficient delivery is mandatory + +Conserve human and AI capacity by optimizing for verified outcomes rather than repeated discussion or duplicated evidence. GitHub Issues are the planning and status authority, GitHub Actions are the verification authority, and agents must not post routine issue or pull-request comments. Keep the current decision-complete contract and evidence table in the Issue body; put implementation context in commits and the pull-request description; retain detailed logs as Actions artifacts. Read only the exact context needed, batch independent reads and checks, reuse immutable receipts, inspect failed jobs rather than rerunning successful work, and batch known defects into one replacement release candidate before repeating expensive activation. Stop at real authority boundaries instead of spending quota speculating around them. + +Every delivery follows `Issue -> branch -> pull request -> Actions -> staging merge -> release/read-back -> Platform composition -> managed acceptance -> main/production`. Before branching, merging, or releasing, fetch and verify the exact protected-branch head. Do not create undocumented side channels for plans, progress, or acceptance. + ## Branch and deployment boundary `main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments. From 3c9560d43f0adcb7f128e83e39954fc8fc4c1eca Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 07:57:58 -0400 Subject: [PATCH 122/501] refactor: make Platform declarative --- .github/workflows/verify.yml | 24 +- .gitignore | 9 +- README.md | 34 +- config/hosts/capacity-provider.yaml | 7 + config/hosts/development.yaml | 8 + config/integrations/development.yaml | 14 + config/promotions/stable.yaml | 5 + config/skills/treeseed.lock.yaml | 11 + config/topologies/production.yaml | 9 + .../catalogs/sandbox-environment-roots.json | 21 - .../capacity-provider-development.json | 216 --- .../host-configs/development-workstation.json | 262 --- .../integration-releases/development.json | 256 --- deployment/integration-releases/stable.json | 18 - deployment/profiles/ai-connected.json | 16 - deployment/profiles/ai-factory.json | 63 - deployment/profiles/ai-inference.json | 26 - deployment/profiles/ai-training.json | 25 - deployment/treeai-component-inputs.json | 67 - development.acceptance.session.yaml | 21 - development.chat-context.session.yaml | 16 - ...lopment.communication-rollout.session.yaml | 21 - development.session.yaml | 29 - docs/agent-communication-readiness.md | 2 +- docs/production-readiness-migration-ledger.md | 4 +- docs/sdk-first-cutover-implementation-plan.md | 4 +- package.json | 26 - .../agent/system/guide-golden.guarantee.yaml | 68 - .../agent/system/source-golden.guarantee.yaml | 48 - ...mous-cited-research-starter.guarantee.yaml | 65 - .../service-workflows.verifiers.yaml | 70 - profiles/capacity-provider.yaml | 5 + profiles/control-plane.yaml | 6 + profiles/core.yaml | 6 + profiles/treeai.yaml | 7 + scenes/team-project-portfolio-demo.yaml | 731 -------- .../guarantees/agent-catalog/cli-runtime.ts | 33 - .../guarantees/agent-catalog/json-evidence.ts | 43 - .../agent-catalog/proof-executor.ts | 33 - .../guarantees/agent-catalog/proof-input.ts | 18 - scripts/guarantees/verify-agent-capability.ts | 119 -- scripts/plan-composition-guarantees.mjs | 175 -- scripts/run-composition-guarantees.mjs | 223 --- ...ynchronize-capacity-provider-manifests.mjs | 68 - scripts/test-composition-guarantee-plan.mjs | 73 - scripts/test-composition-guarantee-run.mjs | 52 - scripts/verify-development-workflow.ts | 66 - scripts/verify-local-workset-inventory.mjs | 74 - scripts/verify-platform.mjs | 226 --- scripts/verify-treeseed-skill.mjs | 37 - seeds/treeseed.yaml | 106 +- skills-lock.json | 12 + skills/treeseed/SKILL.md | 34 - skills/treeseed/catalog-receipt.json | 35 - skills/treeseed/references/execution.md | 10 - skills/treeseed/references/governance.md | 9 - skills/treeseed/references/knowledge.md | 53 - skills/treeseed/references/mcp.md | 10 - skills/treeseed/references/projects.md | 9 - .../template.config.json | 33 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 14 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 23 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 22 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 12 - treeseed.capacity-provider.yaml | 1608 ----------------- treeseed.site.yaml | 24 +- 81 files changed, 184 insertions(+), 15050 deletions(-) create mode 100644 config/hosts/capacity-provider.yaml create mode 100644 config/hosts/development.yaml create mode 100644 config/integrations/development.yaml create mode 100644 config/promotions/stable.yaml create mode 100644 config/skills/treeseed.lock.yaml create mode 100644 config/topologies/production.yaml delete mode 100644 deployment/catalogs/sandbox-environment-roots.json delete mode 100644 deployment/host-configs/capacity-provider-development.json delete mode 100644 deployment/host-configs/development-workstation.json delete mode 100644 deployment/integration-releases/development.json delete mode 100644 deployment/integration-releases/stable.json delete mode 100644 deployment/profiles/ai-connected.json delete mode 100644 deployment/profiles/ai-factory.json delete mode 100644 deployment/profiles/ai-inference.json delete mode 100644 deployment/profiles/ai-training.json delete mode 100644 deployment/treeai-component-inputs.json delete mode 100644 development.acceptance.session.yaml delete mode 100644 development.chat-context.session.yaml delete mode 100644 development.communication-rollout.session.yaml delete mode 100644 development.session.yaml delete mode 100644 package.json delete mode 100644 packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml create mode 100644 profiles/capacity-provider.yaml create mode 100644 profiles/control-plane.yaml create mode 100644 profiles/core.yaml create mode 100644 profiles/treeai.yaml delete mode 100644 scenes/team-project-portfolio-demo.yaml delete mode 100644 scripts/guarantees/agent-catalog/cli-runtime.ts delete mode 100644 scripts/guarantees/agent-catalog/json-evidence.ts delete mode 100644 scripts/guarantees/agent-catalog/proof-executor.ts delete mode 100644 scripts/guarantees/agent-catalog/proof-input.ts delete mode 100644 scripts/guarantees/verify-agent-capability.ts delete mode 100644 scripts/plan-composition-guarantees.mjs delete mode 100644 scripts/run-composition-guarantees.mjs delete mode 100644 scripts/synchronize-capacity-provider-manifests.mjs delete mode 100644 scripts/test-composition-guarantee-plan.mjs delete mode 100644 scripts/test-composition-guarantee-run.mjs delete mode 100644 scripts/verify-development-workflow.ts delete mode 100644 scripts/verify-local-workset-inventory.mjs delete mode 100644 scripts/verify-platform.mjs delete mode 100644 scripts/verify-treeseed-skill.mjs create mode 100644 skills-lock.json delete mode 100644 skills/treeseed/SKILL.md delete mode 100644 skills/treeseed/catalog-receipt.json delete mode 100644 skills/treeseed/references/execution.md delete mode 100644 skills/treeseed/references/governance.md delete mode 100644 skills/treeseed/references/knowledge.md delete mode 100644 skills/treeseed/references/mcp.md delete mode 100644 skills/treeseed/references/projects.md delete mode 100644 templates/platform-external-codex/template.config.json delete mode 100644 templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-external-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-external-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-external-codex/template/treeseed.site.yaml delete mode 100644 templates/platform-local-managed-ai/template.config.json delete mode 100644 templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-local-managed-ai/template/seeds/treeseed.yaml delete mode 100644 templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-local-managed-ai/template/treeseed.site.yaml delete mode 100644 templates/platform-local-managed-codex/template.config.json delete mode 100644 templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-local-managed-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-local-managed-codex/template/treeseed.site.yaml delete mode 100644 templates/platform-market-codex/template.config.json delete mode 100644 templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-market-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-market-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-market-codex/template/treeseed.site.yaml delete mode 100644 treeseed.capacity-provider.yaml diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 9d67fc29..4e9766e4 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -15,13 +15,19 @@ concurrency: jobs: verify: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: 24 - - run: npm install --ignore-scripts --no-audit --no-fund --package-lock=false - - run: npm run verify + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 + with: { fetch-depth: 0 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.40 + with: { version: 0.13.0-rc.40 } + - run: trsd platform verify . --json + - run: trsd platform verify . --profile core --json + - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json + - name: Verify exact project-scoped skill lock + run: | + workspace="$(mktemp -d)" + cd "$workspace" + git init --quiet + npx --yes skills@1.5.23 add https://github.com/treeseed-ai/skill/tree/0.1.0-rc.1 --skill treeseed --agent codex --yes --copy + cmp skills-lock.json "$GITHUB_WORKSPACE/skills-lock.json" diff --git a/.gitignore b/.gitignore index a2db89e2..57655e42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,8 @@ node_modules/ -.treeseed/ dist/ +.treeseed/ /packages/ -/templates/* -!/templates/platform-*/ +/.agents/skills/ +/.claude/skills/ +/.codex/skills/ /.fixtures/ -/products/market/ -/services/market-api/ diff --git a/README.md b/README.md index 61849e37..f6182595 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,35 @@ # TreeSeed Platform -Public Apache-2.0 installer and integration workspace for customer-centric TreeSeed deployments. Platform manages Admin, an optional sovereign Admin API control plane, Core, CLI, capacity providers, TreeDX, and AI services. +TreeSeed Platform is the public, portable configuration and documentation workspace for installing, composing, developing, and releasing the TreeSeed ecosystem. It owns no application runtime or service implementation. SDK operations reconcile its declarations; `trsd` is the operator surface; the host manager owns installed services. -Market is external and immutable at `https://api.treeseed.dev`. This repository cannot provision, deploy, or check out Market or Market API. +## Start developing -The active migration is tracked in [SDK-First Standards, GitHub, and Cluster Cutover Ledger](./docs/sdk-first-cutover-implementation-plan.md). The integrated single-machine and multi-node target is defined in [Cluster Architecture and Cutover](./docs/cluster-architecture-cutover.md), cross-project compatibility in [Standards-Based Independent Development](./docs/standards-dev.md), and provider-neutral GitHub Issues and pull-request synchronization in [GitHub Issues and Pull Request Integration](./docs/github-work-integration.md). +Install a released CLI, clone this repository, and plan the desired source workset before any local API exists: -## Workspace +```text +trsd platform verify . --json +trsd platform workset --profile core --plan --json +trsd platform workset --profile core --apply --yes --json +``` -`trsd platform workset --plan --json` reads the authenticated live team project inventory, observes exact repository refs, and previews assignment-owned custody. `trsd platform workset --apply --yes --json` materializes that disposable custody under `packages/`, `templates/`, and `.fixtures/`. The Platform Git repository contains no portfolio manifest or project gitlinks. Paired content repositories are logical TreeDX/R2 bindings and are never software workset checkouts. +Primary source repositories are materialized beneath `packages/`. Platform remains at the workspace root, knowledge libraries are never software checkouts, and `.treeseed/worksets` contains ignored exact-ref receipts. Existing checkouts are never reset, deleted, or overwritten. + +Install the governed TreeSeed skill at the exact release recorded in `config/skills/treeseed.lock.yaml`. Platform tracks the project lock but ignores installed skill files; skill updates are explicit lock-update pull requests. + +Profiles are composable: + +```text +trsd platform workset --profile control-plane --apply --yes --json +trsd platform workset --profile capacity-provider --apply --yes --json +trsd platform workset --profile control-plane --profile treeai --apply --yes --json +``` + +`core` contains every first-party source project. Runtime selection is independent: any target may remain released while selected targets run live or as candidates. + +## Installation and production + +One generic Debian bootstrap installs only the manager foundation. `trsd host initialize --profile ` selects the role after installation. A capacity provider needs only the control-plane URL and a prompted team registration code; approval binds its generated local identity and replaces the code with short-lived sessions. + +Production topology is declared under `config/topologies/` and remains fail-closed. Cloudflare hosts Admin, Railway hosts the control plane, and bare-metal providers run Agent. Market and Market API participate in development worksets but retain independent hosted-deployment authority. + +Current delivery work and evidence are tracked in [Platform issue #280](https://github.com/treeseed-ai/platform/issues/280). GitHub Issues are status authority and Actions are verification authority. diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml new file mode 100644 index 00000000..652b46c6 --- /dev/null +++ b/config/hosts/capacity-provider.yaml @@ -0,0 +1,7 @@ +schemaVersion: treeseed.platform-host-template/v1 +id: capacity-provider +profiles: [capacity-provider] +integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +inputs: + - { name: controlPlaneUrl, required: true, sensitive: false } + - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml new file mode 100644 index 00000000..d9b6a15e --- /dev/null +++ b/config/hosts/development.yaml @@ -0,0 +1,8 @@ +schemaVersion: treeseed.platform-host-template/v1 +id: development +profiles: [core] +integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +inputs: + - { name: hostIdentity, required: false, sensitive: false } + - { name: initialAdministrator, required: false, sensitive: false } + - { name: recoveryBundle, required: true, sensitive: true } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml new file mode 100644 index 00000000..d143b53e --- /dev/null +++ b/config/integrations/development.yaml @@ -0,0 +1,14 @@ +schemaVersion: treeseed.platform-integration-lock/v1 +release: development-141 +components: + - { id: deployment, version: 0.1.0-rc.179, commit: 7e8e58a6e499aef2a35c9dd036db36694fcb48a4, digest: 'sha256:553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7', artifact: 'https://github.com/treeseed-ai/deployment/releases/tag/0.1.0-rc.179' } + - { id: sdk, version: 0.13.0-rc.63, commit: f3e615c88224069d15b44b9171da20539ba173e3, digest: 'sha256:3e756477fa988b5e82f912e2facd14c9183a919e751ffb0b229ca1af3a126b78', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.63' } + - { id: cli, version: 0.13.0-rc.40, commit: 7c12c3320c44239f89105d53d75725186e08abec, digest: 'sha256:31cdad9c065591d85aae13c71dcde9a3d7081f950f7931b5cfb07ea2ece008ff', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.40' } + - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } + - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } + - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } + - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } + - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } + - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } + - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } +digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' diff --git a/config/promotions/stable.yaml b/config/promotions/stable.yaml new file mode 100644 index 00000000..df0dcdec --- /dev/null +++ b/config/promotions/stable.yaml @@ -0,0 +1,5 @@ +schemaVersion: treeseed.platform-promotion/v1 +id: stable +state: blocked +candidate: development +blockers: [clean-host-acceptance, universal-installer-acceptance, complete-uninstall-acceptance, cloudflare-railway-readback, three-provider-canary-and-rollout, rollback-acceptance] diff --git a/config/skills/treeseed.lock.yaml b/config/skills/treeseed.lock.yaml new file mode 100644 index 00000000..11cbaebf --- /dev/null +++ b/config/skills/treeseed.lock.yaml @@ -0,0 +1,11 @@ +schemaVersion: treeseed.skill-lock/v1 +id: treeseed +source: https://github.com/treeseed-ai/skill +release: 0.1.0-rc.1 +sourceCommit: 9b17b2f35570f6fce998891e901e2e8f4b527ac3 +skillsCliVersion: 1.5.23 +computedHash: 9f7ee249da009916505cf5d4ca9ad1091080221ae5f17577f17d824a1ec710f6 +installedPath: .agents/skills/treeseed +install: { command: 'npx skills@1.5.23 add https://github.com/treeseed-ai/skill/tree/0.1.0-rc.1 --skill treeseed --agent codex --yes' } +update: { command: 'npx skills@1.5.23 update treeseed --project --yes' } +state: accepted-release-candidate diff --git a/config/topologies/production.yaml b/config/topologies/production.yaml new file mode 100644 index 00000000..d474c69c --- /dev/null +++ b/config/topologies/production.yaml @@ -0,0 +1,9 @@ +schemaVersion: treeseed.platform-topology/v1 +id: production +mutation: blocked +providers: + admin: { kind: cloudflare, resourceIds: installation-input } + controlPlane: { kind: railway, resourceIds: installation-input } + capacity: { kind: bare-metal, count: installation-input } +requirements: [reviewed-plan, authoritative-readback, drift-noop, rollback, environment-approval] +boundaries: { marketHostedDeployment: external, marketApiHostedDeployment: external } diff --git a/deployment/catalogs/sandbox-environment-roots.json b/deployment/catalogs/sandbox-environment-roots.json deleted file mode 100644 index 29ffc2b5..00000000 --- a/deployment/catalogs/sandbox-environment-roots.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "schemaVersion": "treeseed.sandbox-environment-roots/v1", - "generation": 1, - "distribution": "ubuntu", - "release": "24.04", - "supportChannel": "lts", - "roots": [ - { - "id": "ubuntu-lts-amd64", - "architecture": "amd64", - "reference": "docker.io/library/ubuntu:24.04", - "digest": "sha256:1e0a86e57d247923571b75e0aaf48a1449cf8c543d51fb3e07a4a7d7bfa79316" - }, - { - "id": "ubuntu-lts-arm64", - "architecture": "arm64", - "reference": "docker.io/library/ubuntu:24.04", - "digest": "sha256:95fa486768020359141f1318720f43e7982ef926c792891d984aef9aaf05e7ea" - } - ] -} diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json deleted file mode 100644 index d9f080eb..00000000 --- a/deployment/host-configs/capacity-provider-development.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "schemaVersion": "treeseed.host/v1", - "configurationId": "capacity-provider-development", - "generation": 4, - "host": { - "id": "provider-development-01", - "role": "capacity-provider", - "architecture": "amd64" - }, - "runtime": { - "management": "managed", - "environment": "production" - }, - "updates": { - "defaultTrack": "development", - "stable": { - "metadataPollSeconds": 86400, - "maintenanceWindow": { - "weekday": "sunday", - "localTime": "03:00", - "jitterMinutes": 20 - } - }, - "development": { - "pollSeconds": 60 - } - }, - "components": { - "agent": { - "enabled": true, - "track": "development", - "profile": "capacity-provider", - "aliases": {}, - "resources": { - "cpuCores": 8, - "memoryBytes": 17179869184, - "gpuDevices": [] - }, - "connections": { - "control-plane": { - "kind": "remote", - "url": "https://api.treeseed.example", - "audience": "https://api.treeseed.example", - "tls": { - "trust": "system", - "serverName": "api.treeseed.example" - }, - "authentication": { - "mode": "bearer", - "secretRef": "provider-registration" - }, - "healthGate": { - "protocol": "https", - "path": "/v1/health", - "timeoutSeconds": 30 - } - } - }, - "configuration": { - "environment": { - "TREESEED_PROVIDER_MODE": "development" - }, - "providerEnrollment": { - "connectionId": "primary", - "teamId": "team:treeseed", - "offer": { - "maxConcurrentRunners": 4, - "capabilities": [ - "treeseed.coordination.conversation", - "treeseed.coordination.question-answering", - "treeseed.coordination.planning", - "treeseed.coordination.estimation", - "treeseed.coordination.review", - "treeseed.coordination.reporting", - "treeseed.coordination.human-task-routing", - "treeseed.coordination.decision-support", - "treeseed.research.web", - "treeseed.research.literature", - "treeseed.research.market", - "treeseed.research.repository", - "treeseed.research.dataset-discovery", - "treeseed.research.retrieval", - "treeseed.research.extraction", - "treeseed.research.verification", - "treeseed.research.citation", - "treeseed.research.synthesis", - "treeseed.research.experimentation", - "treeseed.engineering.architecture", - "treeseed.engineering.repository-analysis", - "treeseed.engineering.review", - "treeseed.engineering.code-change", - "treeseed.engineering.refactoring", - "treeseed.engineering.dependency-update", - "treeseed.engineering.build", - "treeseed.engineering.unit-testing", - "treeseed.engineering.integration-testing", - "treeseed.engineering.end-to-end-testing", - "treeseed.engineering.debugging", - "treeseed.engineering.performance-analysis", - "treeseed.engineering.accessibility", - "treeseed.engineering.infrastructure", - "treeseed.data.source-connection", - "treeseed.data.extraction", - "treeseed.data.ingestion", - "treeseed.data.synchronization", - "treeseed.data.schema-inference", - "treeseed.data.schema-mapping", - "treeseed.data.normalization", - "treeseed.data.transformation", - "treeseed.data.enrichment", - "treeseed.data.entity-resolution", - "treeseed.data.validation", - "treeseed.data.quality-analysis", - "treeseed.data.lineage", - "treeseed.data.statistical-analysis", - "treeseed.data.visualization", - "treeseed.data.export", - "treeseed.publishing.drafting", - "treeseed.publishing.editing", - "treeseed.publishing.translation", - "treeseed.publishing.structured-content", - "treeseed.publishing.documentation", - "treeseed.publishing.cms", - "treeseed.publishing.repository", - "treeseed.publishing.package-artifact", - "treeseed.publishing.site-build", - "treeseed.publishing.site-deployment", - "treeseed.publishing.syndication", - "treeseed.publishing.release-notes" - ] - } - }, - "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" - } - } - } - }, - "network": { - "manager": { - "binding": "127.0.0.1:4790", - "aliases": [], - "sans": [ - "127.0.0.1" - ], - "trustedLanCidrs": [] - } - }, - "fleet": { - "rolloutGroup": "capacity-providers-development", - "receiptReporting": { - "enabled": false, - "intervalSeconds": 300 - } - }, - "secrets": { - "provider-registration": { - "provider": "file", - "reference": "/etc/treeseed/credentials/provider-registration" - } - }, - "security": { - "sandbox": { - "required": true, - "runtime": "kata-runtime-rs-qemu", - "brokerSocket": "/run/treeseed/sandbox/broker.sock", - "modelGateway": { - "provider": "openai", - "upstreamBaseUrl": "https://api.openai.com", - "allowedModels": [ - "gpt-5.4" - ] - }, - "profiles": [ - { - "id": "read", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "unit", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "integration", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "platform", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "connected", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - } - ] - }, - "providerVolume": { - "encryption": "luks2", - "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", - "mountPath": "/var/lib/treeseed/agent", - "sizeBytes": 17179869184, - "unlock": "tpm2", - "recoveryRequired": true - }, - "applicationEncryption": { - "provider": "systemd-credential", - "activeKeyVersion": 1, - "diagnosticsKeyVersion": 1 - } - } -} diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json deleted file mode 100644 index cc49bbbe..00000000 --- a/deployment/host-configs/development-workstation.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "schemaVersion": "treeseed.host/v1", - "configurationId": "development-workstation", - "generation": 21, - "host": { - "id": "adrian-workstation", - "role": "integrated", - "architecture": "amd64" - }, - "runtime": { - "management": "managed", - "environment": "development", - "dataRoot": "/var/lib/treeseed/development/.treeseed/data" - }, - "updates": { - "defaultTrack": "development", - "stable": { - "metadataPollSeconds": 86400, - "maintenanceWindow": { - "weekday": "sunday", - "localTime": "03:00", - "jitterMinutes": 20 - } - }, - "development": { - "pollSeconds": 60 - } - }, - "components": { - "api": { - "enabled": true, - "track": "development", - "aliases": { - "api.api.http": "api.treeseed.localhost" - }, - "configuration": { - "environment": { - "NODE_ENV": "production", - "TREESEED_ENVIRONMENT": "local", - "TREESEED_LOCAL_DEV_MODE": "1", - "POSTGRES_USER": "treeseed", - "POSTGRES_DB": "treeseed_api", - "TREESEED_API_BASE_URL": "https://api.treeseed.localhost", - "TREESEED_SITE_URL": "https://admin.treeseed.localhost", - "TREESEED_API_AUTH_APPROVAL_BASE_URL": "https://admin.treeseed.localhost", - "TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST": "adrian.webb@knowledge.coop", - "TREESEED_MAILPIT_SMTP_HOST": "mailpit", - "TREESEED_MAILPIT_SMTP_PORT": "1025", - "TREESEED_TREEDX_URL": "http://treedx:4000", - "TREESEED_TREEDX_JWT_ISSUER": "https://api.treeseed.localhost/treedx", - "TREESEED_TREEDX_JWT_AUDIENCE": "treedx" - }, - "secretEnvironment": { - "POSTGRES_PASSWORD": "api-postgres-password", - "TREESEED_DATABASE_URL": "api-database-url", - "SESSION_SECRET": "api-session-secret", - "TREESEED_TREEDX_DELEGATION_PRIVATE_KEY": "api-treedx-delegation-private-key", - "TREESEED_TREEDX_CREDENTIAL_BROKER_ASSERTION": "treedx-credential-broker-assertion", - "TREESEED_GITHUB_TOKEN": "github-repository-token" - } - } - }, - "admin": { - "enabled": true, - "track": "development", - "connections": { - "api": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "NODE_ENV": "production", - "TREESEED_SITE_URL": "https://admin.treeseed.localhost" - } - } - }, - "agent": { - "enabled": true, - "track": "development", - "aliases": {}, - "connections": { - "control-plane": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "TREESEED_PROVIDER_MODE": "development" - }, - "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" - } - } - }, - "treedx": { - "enabled": true, - "track": "development", - "aliases": { - "treedx.treedx.http": "treedx.treeseed.localhost" - }, - "connections": { - "control-plane": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "TREEDX_GIT_EXTERNAL_TRANSPORT_ENABLED": "true", - "TREEDX_GIT_ALLOWED_HOSTS": "github.com", - "TREEDX_REMOTE_CREDENTIAL_BROKER_SERVICE_ID": "node_local", - "TREEDX_BOOTSTRAP_TRUST_ACTOR_ID": "treeseed-api", - "TREEDX_BOOTSTRAP_TRUST_TENANT_ID": "treeseed-control-plane", - "TREEDX_JWT_ISSUER": "https://api.treeseed.localhost/treedx", - "TREEDX_JWT_AUDIENCE": "treedx", - "TREEDX_JWT_ALLOWED_ALGS": "RS256" - }, - "secretEnvironment": { - "TREEDX_REMOTE_CREDENTIAL_BROKER_ASSERTION": "treedx-credential-broker-assertion" - } - } - }, - "lab": { - "enabled": true, - "track": "development", - "aliases": { - "lab.mailpit.web": "mail.treeseed.localhost", - "lab.diagnostics.http": "lab.treeseed.localhost" - }, - "configuration": { - "environment": {} - } - }, - "ai-inference": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - }, - "ai-training": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - }, - "ai-lab": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - } - }, - "network": { - "manager": { - "binding": "127.0.0.1:4790", - "aliases": [ - "manager.treeseed.localhost" - ], - "sans": [ - "manager.treeseed.localhost", - "127.0.0.1" - ], - "trustedLanCidrs": [] - } - }, - "fleet": { - "rolloutGroup": "development-workstation", - "receiptReporting": { - "enabled": false, - "intervalSeconds": 300 - } - }, - "secrets": { - "api-postgres-password": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-postgres-password" - }, - "api-database-url": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-database-url" - }, - "api-session-secret": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-session-secret" - }, - "api-treedx-delegation-private-key": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-treedx-delegation-private-key" - }, - "treedx-credential-broker-assertion": { - "provider": "file", - "reference": "/etc/treeseed/credentials/treedx-credential-broker-assertion" - }, - "github-repository-token": { - "provider": "file", - "reference": "/etc/treeseed/credentials/github-repository-token" - } - }, - "security": { - "sandbox": { - "required": true, - "runtime": "kata-runtime-rs-qemu", - "brokerSocket": "/run/treeseed/sandbox/broker.sock", - "modelGateway": { - "provider": "openai", - "upstreamBaseUrl": "https://api.openai.com", - "allowedModels": [ - "gpt-5.4" - ] - }, - "profiles": [ - { - "id": "read", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "unit", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "integration", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "platform", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "connected", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - } - ] - }, - "providerVolume": { - "encryption": "luks2", - "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", - "mountPath": "/var/lib/treeseed/agent", - "sizeBytes": 17179869184, - "unlock": "systemd-credential", - "recoveryRequired": true - }, - "applicationEncryption": { - "provider": "systemd-credential", - "activeKeyVersion": 1, - "diagnosticsKeyVersion": 1 - } - } -} diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json deleted file mode 100644 index 71cc772a..00000000 --- a/deployment/integration-releases/development.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc179", - "generation": 140, - "track": "development", - "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { - "repository": "treeseed-ai/platform", - "commit": "14e4df35d7f2f91f9b8a8cc89a7e8b6fcd0817de" - }, - "deployment": { - "repository": "treeseed-ai/deployment", - "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", - "tag": "0.1.0-rc.179" - }, - "hostPayloads": [ - { - "id": "sdk", - "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.60", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.60.tgz", - "sha256": "b98120e2995bf7f98fb1bf76e60314915d0764bdf1b4156d7cc0f1640b19d652" - } - }, - { - "id": "api", - "packageName": "@treeseed/api", - "version": "0.8.0-rc.60", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", - "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" - } - }, - { - "id": "ui", - "packageName": "@treeseed/ui", - "version": "0.12.18-rc.11", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", - "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" - } - }, - { - "id": "core", - "packageName": "@treeseed/core", - "version": "0.12.60-rc.8", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", - "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" - } - }, - { - "id": "admin", - "packageName": "@treeseed/admin", - "version": "0.12.59-rc.22", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", - "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" - } - }, - { - "id": "reviewer", - "packageName": "@treeseed/reviewer", - "version": "0.1.0-rc.13", - "artifact": { - "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", - "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" - } - }, - { - "id": "playwright-core", - "packageName": "playwright-core", - "version": "1.60.0", - "artifact": { - "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" - } - }, - { - "id": "cli", - "packageName": "@treeseed/cli", - "version": "0.13.0-rc.38", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.38.tgz", - "sha256": "5212b922d338f4c2571b11e3fde2a922a72d9782bc5a96cfb5c1263647da3c86" - } - }, - { - "id": "treedx", - "packageName": "@treeseed/treedx", - "version": "0.3.0-rc.12", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", - "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" - } - }, - { - "id": "yaml", - "packageName": "yaml", - "version": "2.9.0", - "artifact": { - "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" - } - }, - { - "id": "zod", - "packageName": "zod", - "version": "3.25.76", - "artifact": { - "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" - } - } - ], - "components": [ - { - "componentId": "api", - "release": "0.8.0~rc60-1", - "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", - "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", - "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" - } - } - ] - }, - { - "componentId": "admin", - "release": "0.12.59~rc22-1", - "manifest": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", - "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", - "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" - } - } - ] - }, - { - "componentId": "agent", - "release": "0.13.0~rc36-1", - "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", - "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", - "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" - } - } - ] - }, - { - "componentId": "treedx", - "release": "0.3.0~rc12-1", - "manifest": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", - "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", - "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" - } - } - ] - }, - { - "componentId": "lab", - "release": "0.1.0~rc34-1", - "manifest": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", - "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", - "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" - } - } - ] - }, - { - "componentId": "ai-inference", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", - "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" - }, - "files": [ - { - "path": "ai-inference-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", - "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" - } - } - ] - }, - { - "componentId": "ai-training", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", - "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" - }, - "files": [ - { - "path": "ai-training-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", - "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" - } - } - ] - }, - { - "componentId": "ai-lab", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", - "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" - }, - "files": [ - { - "path": "ai-lab-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", - "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" - } - } - ] - } - ], - "createdAt": "2026-08-31T05:25:00.000Z" -} diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json deleted file mode 100644 index 6c182f24..00000000 --- a/deployment/integration-releases/stable.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0", - "generation": 36, - "track": "stable", - "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, - "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, - { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, - { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } - ], - "components": [], - "createdAt": "2026-08-28T06:02:00.000Z" -} diff --git a/deployment/profiles/ai-connected.json b/deployment/profiles/ai-connected.json deleted file mode 100644 index 31a23ab7..00000000 --- a/deployment/profiles/ai-connected.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-connected", - "default": false, - "extends": "ai-factory", - "components": { - "api": { - "enabled": true, - "configuration": { - "environment": { "TREESEED_TREEAI_NODES": "{\"local-ai\":{\"endpoints\":{\"inference\":\"http://inference-api:4770\",\"training\":\"http://training-api:4780\",\"lab\":\"http://controller:8081\"},\"tokenEnvironment\":\"TREESEED_TREEAI_OPERATOR_TOKEN\"}}" }, - "secretEnvironment": { "TREESEED_TREEAI_OPERATOR_TOKEN": "treeai-operator-token" } - } - } - }, - "secrets": { "treeai-operator-token": { "provider": "file", "reference": "/etc/treeseed/credentials/treeai-operator-token" } } -} diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json deleted file mode 100644 index 2ad750e6..00000000 --- a/deployment/profiles/ai-factory.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-factory", - "default": false, - "components": { - "ai-inference": { - "enabled": true, - "track": "development", - "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "INFERENCE_DATABASE_URL": "ai-inference-database-url", - "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", - "AI_API_KEYS": "ai-inference-api-keys" - } } - }, - "ai-training": { - "enabled": true, - "track": "development", - "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "TRAINING_DATABASE_URL": "ai-training-database-url", - "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", - "AI_API_KEYS": "ai-training-api-keys" - } } - }, - "ai-lab": { - "enabled": true, - "track": "development", - "aliases": { - "ai-lab.open-webui.web": "chat.ai.treeseed.localhost", - "ai-lab.hermes-dashboard.web": "hermes.ai.treeseed.localhost" - }, - "connections": { - "inference": { "kind": "local", "componentId": "ai-inference", "serviceId": "inference-api", "endpointId": "inference" }, - "training": { "kind": "local", "componentId": "ai-training", "serviceId": "training-api", "endpointId": "control" } - }, - "configuration": { "secretEnvironment": { "AI_LAB_API_KEYS": "ai-lab-api-keys" } } - } - }, - "secrets": { - "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, - "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, - "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, - "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, - "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" }, - "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, - "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, - "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, - "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" }, - "ai-lab-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-api-keys" }, - "training-source": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-source" }, - "ai-mode-ca": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-ca.crt" }, - "ai-mode-client-cert": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.crt" }, - "ai-mode-client-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.key" }, - "factory-inference-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-inference-key" }, - "factory-training-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-training-key" }, - "hermes-api-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-api-key" }, - "hermes-password-hash": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-password-hash" }, - "hermes-session-secret": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-session-secret" }, - "training-ingest-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-ingest-key" }, - "lab-library-action-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-lab-library-action-key" } - } -} diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json deleted file mode 100644 index 28bca3f6..00000000 --- a/deployment/profiles/ai-inference.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-inference", - "default": false, - "components": { - "ai-inference": { - "enabled": true, - "track": "development", - "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "INFERENCE_DATABASE_URL": "ai-inference-database-url", - "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", - "AI_API_KEYS": "ai-inference-api-keys" - } } - }, - "ai-training": { "enabled": false }, - "ai-lab": { "enabled": false } - }, - "secrets": { - "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, - "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, - "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, - "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, - "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" } - } -} diff --git a/deployment/profiles/ai-training.json b/deployment/profiles/ai-training.json deleted file mode 100644 index 08594c37..00000000 --- a/deployment/profiles/ai-training.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-training", - "default": false, - "components": { - "ai-inference": { "enabled": false }, - "ai-training": { - "enabled": true, - "track": "development", - "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "TRAINING_DATABASE_URL": "ai-training-database-url", - "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", - "AI_API_KEYS": "ai-training-api-keys" - } } - }, - "ai-lab": { "enabled": false } - }, - "secrets": { - "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, - "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, - "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, - "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" } - } -} diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json deleted file mode 100644 index 3f23172c..00000000 --- a/deployment/treeai-component-inputs.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc9", - "sourceCommit": "92c7b2edc73416d77c5c0a6789ef73dba71ddf92", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc9", - "contractReleaseSha256": "be5aca3d87167057494feadb9c9c0291c2047c9b7079ac2f241ec5238c5709d8", - "imageManifestSha256": "a4a727b0d7c8a0e0a2f688a9006ca020e1030275026880361a06a105dc040c2d", - "contracts": { - "genericSdk": { - "packageName": "@treeseed/treeai", - "version": "0.11.0-rc9", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/treeseed-treeai-0.11.0-rc9.tgz", - "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" - }, - "openapi": { - "inference": "3a00f1d91635d87d0aad2c6d329f495ff210f393bc9851570aa3e3ad1f5c1db4", - "training": "89dc70cecc85079853e4f177827d681e66f4b24b93ef17713051b99f07c2fe00", - "lab": "bccafa27b00a63b9fb22b132b850f9af6e77d44047dbc8966344088266d65898", - "qualification": "3f68b78845ec19c5de389663f1cb677ab4df0683ecd113c4f5780885a89370b7" - }, - "operationInventorySha256": "dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc", - "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", - "treeSeedSdk": { - "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.53", - "sourceCommit": "ac6a535b99867cfc9e955b71ec333ed28980020a", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", - "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" - }, - "api": { - "packageName": "@treeseed/api", - "version": "0.8.0-rc.49", - "sourceCommit": "330da2e218f8507904bd8036bcff98eba6958e7c", - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", - "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037", - "componentManifestSha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d", - "composeSha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" - }, - "cli": { - "packageName": "@treeseed/cli", - "version": "0.13.0-rc.30", - "sourceCommit": "63c075ba5b93c517b3860ef545b2c121a27d30c1", - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.30.tgz", - "sha256": "a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7" - } - }, - "components": [ - { - "componentId": "ai-inference", - "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } - }, - { - "componentId": "ai-training", - "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } - }, - { - "componentId": "ai-lab", - "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } - } - ] -} diff --git a/development.acceptance.session.yaml b/development.acceptance.session.yaml deleted file mode 100644 index f9c2c2e9..00000000 --- a/development.acceptance.session.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Full local acceptance environment used by repository-owned TreeSeed scenes. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: live }] - - manifest: packages/ui/treeseed.package.yaml - worktree: packages/ui - targets: [{ id: package, mode: live }] - - manifest: packages/core/treeseed.package.yaml - worktree: packages/core - targets: [{ id: package, mode: live }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] - - manifest: packages/admin/treeseed.package.yaml - worktree: packages/admin - targets: [{ id: web, mode: live }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: candidate }] diff --git a/development.chat-context.session.yaml b/development.chat-context.session.yaml deleted file mode 100644 index d7d53e3a..00000000 --- a/development.chat-context.session.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# End-to-end chat and assignment-context development with a candidate capacity provider. -# Use development.communication-rollout.session.yaml when provider behavior is out of scope. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: live }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] - - manifest: packages/cli/treeseed.package.yaml - worktree: packages/cli - targets: [{ id: package, mode: live }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: candidate }] diff --git a/development.communication-rollout.session.yaml b/development.communication-rollout.session.yaml deleted file mode 100644 index e072174b..00000000 --- a/development.communication-rollout.session.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Communication control-plane development without replacing the released capacity provider. -# Use development.chat-context.session.yaml when provider behavior is part of the test. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: - - { id: package, mode: live } - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: - - { id: service, mode: live } - - { id: operations-runner, mode: candidate } - - manifest: packages/cli/treeseed.package.yaml - worktree: packages/cli - targets: - - { id: package, mode: live } - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: - - { id: provider, mode: released } diff --git a/development.session.yaml b/development.session.yaml deleted file mode 100644 index 3b8a99bf..00000000 --- a/development.session.yaml +++ /dev/null @@ -1,29 +0,0 @@ -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/ai/treeseed.package.yaml - worktree: packages/ai - targets: - - { id: ai-inference, mode: released } - - { id: ai-training, mode: released } - - { id: ai-lab, mode: released } - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: released }] - - manifest: packages/ui/treeseed.package.yaml - worktree: packages/ui - targets: [{ id: package, mode: released }, { id: sandbox, mode: released }] - - manifest: packages/core/treeseed.package.yaml - worktree: packages/core - targets: [{ id: package, mode: released }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: released }, { id: operations-runner, mode: released }] - - manifest: packages/admin/treeseed.package.yaml - worktree: packages/admin - targets: [{ id: web, mode: released }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: released }] - - manifest: packages/reviewer/treeseed.package.yaml - worktree: packages/reviewer - targets: [{ id: companion, mode: released }] diff --git a/docs/agent-communication-readiness.md b/docs/agent-communication-readiness.md index 085b63d1..25a88356 100644 --- a/docs/agent-communication-readiness.md +++ b/docs/agent-communication-readiness.md @@ -6,7 +6,7 @@ The local control plane and TreeDX service are live. The canonical `treeseed` se The owner memberships are: -- Adrian Webb, bound to `adrian.webb@knowledge.coop` as an interactive human owner. +- An installation-supplied interactive human owner. - `service-principal:treeseed/automation`, bound as a non-login service owner. Provider workers do not inherit this owner's authority. The unified local capacity provider is enrolled and owner-approved as `provider_LtqmnSGecDlhDPb2-7WgyLkKwxI8VDAO`. Its manager is renewing availability session `5e033c5a-c8c2-439d-8a0c-96dff8da1e24`, and its runner is live and polling without claiming work. `codex-local` is available only on the `communication` lane with one reserved worker and two-worker maximum. Exactly fifteen active project grants are narrowed to that adapter and lane. `platform-local` remains unavailable and the `workday` lane is paused, so global seed closure truthfully retains `lane_execution_unavailable:platform` and `lane_execution_unavailable:workday` without blocking communication. diff --git a/docs/production-readiness-migration-ledger.md b/docs/production-readiness-migration-ledger.md index 43031d65..f0a5b11b 100644 --- a/docs/production-readiness-migration-ledger.md +++ b/docs/production-readiness-migration-ledger.md @@ -443,7 +443,7 @@ The real TreeSeed team proved the new Designer against live TreeDX definitions r ### Repository-authored simulation reached the real team workday boundary -Simulation Bay committed its generated scene and seed through TreeDX and published exact GitHub content refs `aa5c57e0388a5c33b745dcb4fb6ff44b8b54a5d5` and `419a9769411981af0f64f85f8b3043c95cc81913`. This acceptance exposed four recovery defects instead of hiding them behind fixture aliases: remote fetch read-back checked a ref TreeDX does not expose; a fetched content ref could be current while graph/search state remained stale and the reconciler incorrectly planned `noop`; an immutable operation bundle was incorrectly treated as the live provider-runtime root; and the generated simulation invented a legacy `capacity-provider:treeseed/local` rather than resolving the active project grant's seed identity and execution-provider inventory. Fresh branch-ref verification, stale-index update planning, explicit `TREESEED_TENANT_ROOT`, and grant-derived provider references now own those boundaries. The resulting operation created and ticked real retained workday `agent-lab:27ab4e43-e1ca-4d39-b3c2-e2684aa7b755:cooperative-planning-demo` through the reconciled `capacity-provider:treeseed/agents` runtime. +Simulation Bay committed its generated scene and seed through TreeDX and published exact GitHub content refs `aa5c57e0388a5c33b745dcb4fb6ff44b8b54a5d5` and `419a9769411981af0f64f85f8b3043c95cc81913`. This acceptance exposed four recovery defects instead of hiding them behind fixture aliases: remote fetch read-back checked a ref TreeDX does not expose; a fetched content ref could be current while graph/search state remained stale and the reconciler incorrectly planned `noop`; an immutable operation bundle was incorrectly treated as the live provider-runtime root; and the generated simulation invented a fixed local provider identity rather than resolving the active project grant's seed identity and execution-provider inventory. Fresh branch-ref verification, stale-index update planning, explicit `TREESEED_TENANT_ROOT`, and grant-derived provider references now own those boundaries. The resulting operation created and ticked a retained cooperative-planning workday through the reconciled agent runtime. That live workday then exposed two content/forensic edge cases. SSE projection passed `null` URL filters into the Zod query contract and crashed the API; absent filters are now normalized before validation with a focused regression. The draft generator also selected the alphabetically first historical test even when its target agent was intentionally dormant. It now authors a Zod-validated project-inventory agent test from enabled durable agents and pins that test in the scene. A mixed create/update bundle additionally proved TreeDX batch reads fail atomically when one requested path is missing; authoring now observes each proposed path independently before building one atomic changeset. API lint/build and the focused workday-activity regression pass. The final inventory-test publication and completed Atlas return remain the current live gate; failed operations and reports are retained as forensic evidence. @@ -578,7 +578,7 @@ Authenticated scene `20260813t002808753z` then passed all 12 focus, vital-densit Canonical provider reconciliation rebuilt the absent Agent manager and runner images, restored both Agent and platform-operation Compose units, and fresh status now reports all six provider resources ready with no blockers. The first deliberately small planning selections exposed a plan/apply parity defect: CLI plan checked repository binding and class presence but did not compile the selected signal DAG or cooperative time budget, while API execution correctly rejected an invalid single-profile graph and an underfunded two-profile graph. Scheduling validation therefore remains an API-owned preflight gap; the CLI must consume that exact read-only result rather than duplicate the planning compiler. -Bounded acceptance run `bd79f131-3d3b-4e14-8801-db9ec9d39c82` proved a real two-profile chain. Audience Reviewer completed through Codex, committed `src/content/notes/editorial/books/treeseed-guide/reviews/core-objective-reader-journey-assessment.mdx` through TreeDX, and published the upstream signal that admitted Guide Steward. It also exposed two operator-boundary defects. First, the authenticated browser fixture belongs only to its isolated visual-audit team, so an internal TreeSeed-team run is correctly invisible in that session. The supported human path is the pending seed membership for `adrian.webb@treeseed.dev`, claimed when that verified account is created; automation must not weaken authorization by silently adding visual-test identities to the development team. Second, `workday-cancel` targets a project envelope while `workday-run` returns a parent coordination-run ID. Cancelling only the envelope left parent admission authority active. The CLI now exposes and documents `workday-run-cancel`, which transitions the API-owned parent and terminalizes remaining envelopes and assignments; its request compiler has focused coverage. +Bounded acceptance proved a real two-profile chain. Audience Reviewer completed through Codex, committed its assessment through TreeDX, and published the upstream signal that admitted Guide Steward. It also exposed two operator-boundary defects. First, the authenticated browser fixture belongs only to its isolated visual-audit team, so an internal team run is correctly invisible in that session. The supported human path is an installation-supplied pending membership claimed by its verified account; automation must not weaken authorization by silently adding visual-test identities to the development team. Second, `workday-cancel` targets a project envelope while `workday-run` returns a parent coordination-run ID. Cancelling only the envelope left parent admission authority active. The CLI now exposes and documents `workday-run-cancel`, which transitions the API-owned parent and terminalizes remaining envelopes and assignments; its request compiler has focused coverage. Fresh summary read-back proves the run closed without hidden work: the parent and Market envelope are cancelled, assignments total two with one completed and one failed, pending and leased counts are zero, mode runs are terminal, reservations total two, usage actuals total three, and ledger entries total two. One ledger entry is the normal Audience Reviewer provider settlement and one is explicit terminalization of Guide Steward. The focused CLI suite passes 5/5 and the CLI build passes. A broad standard clean plan was intentionally not applied because it would remove about 1.47 GB of retained scene evidence, including the accepted workspace-focus run; cleanup remains pending until the relevant evidence is bundled or a narrower supported cleanup scope exists. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 10f69424..6584bcd8 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -23,7 +23,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail - Active repositories: SDK staging `548c13ac8bf156361c0329fd4117e266bc541d41` / immutable `0.13.0-rc.25`; API staging `819dbcd3aa24661ceab98df4e1413853a0166548` / tag `0.8.0-rc.7`; CLI staging `de880f4e6abeba8b9e484f80486d595f76ef73fa` / immutable `0.13.0-rc.11`; Agent staging `dfdda15d9aa72d14cb88186965c3bb5bf3b60c6c` / immutable `0.13.0-rc.9`; TreeDX staging `557c41f8e631cb440f21512cc5f182195805c9b9` / immutable `0.3.0-rc.4`; Platform readiness staging `85e5b51061df7c2102a97f06ec6709d446de1dc6`. The first live communication send remains the explicit next boundary. - Completed bootstrap repositories: `treeseed-ai/cli`, `treeseed-ai/platform`, and the SDK source canary - Next action: run the first live, single-recipient SDK communication through `trsd send`, observe the communication assignment through the live provider runner, verify the TreeDX response, exact settlement, human Markdown panel, and zero execution residue, then repeat as the clean-repeat scene. Platform and workday adapters remain explicitly unavailable and outside this first communication run. -- Unified seed and capacity-provider battery checkpoint: `in_progress`. Audit found the canonical seed omits Market and Market API, uses stale owner email and removed `agentLabServicePrincipals`, and declares separate platform/agent providers. Accepted SDK still exposes `treeseed.capacity-provider/v2` with `agent | platform-operation`; API seed apply plans but does not reconcile provider prerequisites; Agent selects only its default executor and ignores declared lanes; CLI provider leaves are not fully bound. Target is one approved local provider with shared communication/platform/workday capacity, reserved-borrowable communication admission, an isolated platform executor, owner memberships for `adrian.webb@knowledge.coop` and a non-login automation service principal, and exact grants across fifteen projects. Live agents, workdays, repository mutation, and TreeDX mutation remain fail-closed. +- Unified seed and capacity-provider battery checkpoint: `in_progress`. Audit found the canonical seed omitted Market and Market API, used a host-specific owner identity, and declared separate platform/agent providers. The target is an approved provider with shared communication/platform/workday capacity, reserved-borrowable communication admission, an isolated platform executor, installation-supplied membership, and exact project grants. Live agents, workdays, repository mutation, and TreeDX mutation remain fail-closed. - Derived virtual-knowledge-repository checkpoint: root projects are the only seed-declared ownership resources. Each root project automatically owns one TreeDX virtual knowledge repository exposed through file, blob, search, graph, context, and artifact operations and backed by the selected TreeDX storage profile (local now; R2-capable binding later). These are not GitHub repositories and have no checkout, branch, PR, Actions, or package-release policy. Platform Issue #33 / PR #34 removed the fifteen false Git content bindings and merged as staging `3c7052f`; digest changed from `sha256:4277f55449ed1d0a6e4d21f4d3e356890006a5383bdf0aa520a8a4121dd1bbb0` to `sha256:5c2ca42c74e21523940cf576fb08f4513eb6c21a49ccf23d8b573d945a577b0c`, leaving fifteen projects, sixteen real source/support repositories, and fifteen derived TreeDX virtual knowledge repositories. API bootstrap and content-only adoption are accepted at `5756f27aedc55af24dfc300f3f9f28d94628f61c`. SDK Issue #64 / PR #65 merged as `2b45313f66efe58fc85a873ff4fac5e89eba4c8d`; immutable RC21 publish/verify runs `32624069609`, `32624069556`, and `32624067909` passed, with npm integrity `sha512-f0qYE6uyI3qWx3F9XE3g1F0q/9CIRp7QvEvcvta+s9I2fxuwmr0Aj8BewdwZi6kbPpBH6Ng9dnhs5m0MoGtMJA==` and shasum `8b119de604d371bee9e428abae3a29b1a0dc1b5f`. TreeDX Issue #16 / PR #17 adds authoritative `retireRepository`, tombstones repository/name/placement records, moves managed storage into recoverable retired custody, and updates OpenAPI `0.11.1` plus all four generated clients for `0.3.0-rc.4`; focused store, API, OpenAPI, and SDK coverage checks pass. Remaining work: hosted acceptance and immutable TreeDX publication, then SDK/API proxy mapping and project-deletion adoption. - Unified battery SDK contract checkpoint: Issue #62 / PR #63 exact head `182b05dd8415e7d45f5934f450fda8bf9702ca5d` passed local architecture/build, deterministic standards and packed acceptance, 20 modern files/98 tests, and hosted Verify `32619054665`/`32619062873`. It merged/read back as staging `974bf855b57eac8e30250f4e3dcade2c8a4baa18`; post-merge Verify `32619090785`, tag Verify `32619118808`, and publish/read-back `32619118800` passed. Immutable npm `@treeseed/sdk@0.13.0-rc.20` has integrity `sha512-XM2ewAUACIO/umqZEsKlfdJxaDZW8IyMnH5pSoS7vcySKbMb/2bGPwJpfIIuNui9vMAkQ7KwkoIEV5fHXiFUvQ==`, shasum `6b207fd37378703a4501852cce895a667fe35a8f`, `rc=0.13.0-rc.20`, and unchanged `latest=0.12.62`. The accepted catalog contains 306 operations, 123 MCP tools, and 56 MCP resources. Next: pin API to RC20 and implement portable seed application, service-principal ownership, provider enrollment/reconciliation, and shared lane admission. - Unified battery API checkpoint: Issue #23 / PR #24 implementation `f1dfbc14c26ab7e234757f068e671b66435ba035` and follow-up Issue #25 / PR #26 merged/read back as staging `0982d41dc64f6c9c6903bc147b81e76004124ec1`. API `0.8.0-rc.3` consumes and persists uploaded bundles, owns non-login service principals, provider enrollment/approval/grants, provider-wide three-lane admission, and portable verification. Focused seed/provider/capacity tests, catalog completeness, build, hosted Verify, authorization, disposable PostgreSQL proof, and retained development database migration/read-back passed. @@ -33,7 +33,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail - Canonical portfolio checkpoint: Platform seed digest is `sha256:4277f55449ed1d0a6e4d21f4d3e356890006a5383bdf0aa520a8a4121dd1bbb0`; unified provider manifest SHA-256 is `9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c`. SDK validation reads 1 team, 2 owners, 15 projects, 31 repositories, and a provider prerequisite spanning all 15 projects with zero diagnostics. All four installer templates now use only this seed and the v3 manifest. Platform `verify:local` passes. Market PR #2 removes its competing legacy seeds without adding AGPL enforcement. Market API PR #2 makes that repository explicitly AGPL-3.0-only, adds the one-time username allowlist, moves gateway behavior out of SDK ownership, removes its Git SDK dependency, and passes build plus 3 files/6 tests. - Retained database checkpoint: before applying the v3 provider/service-principal migration, the healthy PostgreSQL 16 `treeseed_api` database read back at 637 MB. Owner-only custom-format backup `.treeseed/backups/api-control-plane/2026-08-23-pre-capacity-battery/treeseed-api-pre-capacity-battery.dump` is 149,140,950 bytes, mode `0600`, SHA-256 `b5c2717ec4ce0322035c0b0c0ff0b7fbdfc6dfb501d03624e188407b2e74db94`, and `pg_restore --list` succeeds inside the pinned PostgreSQL container. It remains retained pending explicit human deletion approval. - Unified battery composition checkpoint: `docs/evidence/unified-capacity-battery-composition.json` binds the accepted TreeDX, SDK, API, CLI, Agent, Market, Market API, and Platform staging refs; SDK/npm, CLI/npm, Agent/npm, OpenAPI, MCP, command-tree, seed, provider-manifest, hosted-run, and backup receipts. All seven GitHub repositories have zero open PRs and only `main`/`staging` branches after deleting seven Market branch pointers whose tips were already ancestors of staging. Runtime closure remains `waiting_human_authentication`; the composition explicitly keeps live agent execution false. -- Human checkpoint — local CLI OAuth device approval: the new `--server` custody intentionally has no session because legacy Market custody was not migrated. The owner must run `TREESEED_API_BASE_URL=http://127.0.0.1:3002 node packages/cli/dist/cli/main.js auth login --server local`, open the displayed local verification URL, authenticate as `adrian.webb@knowledge.coop`, and approve the device request. Passwords, device codes, OAuth tokens, custody keys, and `~/.config/treeseed` contents must not be pasted into chat. Success is an encrypted session whose read-only status resolves Adrian Webb; expiry, denial, or another principal fails. Seed/provider runtime closure proceeds immediately after read-back. +- Human checkpoint — local CLI OAuth device approval: the new `--server` custody intentionally has no session because legacy custody was not migrated. The installation owner must run `trsd auth login --server local`, open the displayed local verification URL, authenticate, and approve the device request. Passwords, device codes, OAuth tokens, and custody keys must not be pasted into chat. Success is an encrypted session whose read-only status resolves the approved principal; expiry, denial, or another principal fails. - Device-approval correction: the first human attempt proved GET `/auth/device/approve` returned a JSON instruction while POST required the bearer credential the device flow was intended to issue. API Issue #27 / PR #28 fixes the circular bootstrap with an HTML form that authenticates the existing human credential server-side, approves only the pending code, returns no OAuth credential to the browser, and preserves the bearer/JSON path. Focused OAuth protocol/custody passed 11/11, the distribution build passed, contributor authorization and both hosted Verify jobs passed, and staging reads back at `84e4ea1d9f697de91b2012f1e7dfcbdafcce5418`. The restarted local API serves the form with `no-store`, CSP, and anti-framing headers. - TreeDX control-plane proxy cutover: `verified`. TreeDX remains the independent wire authority; SDK owns the TreeSeed semantic proxy facade and mapping; API is the sole TreeSeed credential, authorization, binding, delegation, REST, OpenAPI, and MCP proxy boundary. CLI and Agent consume catalog operations without TreeDX endpoints or credentials. Exact artifacts, hosted checks, focused modern verification, Platform composition, authoritative read-back, and final PR/branch/worktree residue checks pass. Production, npm `latest`, and live agent/workday execution were not changed by this prerequisite. - TreeDX authoritative-contract checkpoint: Issue [#1](https://github.com/treeseed-ai/treedx/issues/1) / PR [#2](https://github.com/treeseed-ai/treedx/pull/2) started from exact staging `25e5ac36abd273994af8cab35c3bcbb679e6ab2b`; reviewed head `52cde66008195c329a9231cf5c58506645fe6eb7` merged and reads back as staging `ca3fbdf79f28c82060387f14887c99c44eb9a8cf`. The candidate publishes service `0.3.0-rc.1`, OpenAPI `0.11.0`, 119 operation IDs, raw OpenAPI and typed contract exports, and OpenAPI digest `sha256:52ed190300922c388b115981e60635c306c643d48a3308ef9f79975510ae1926`. Four SDK omissions are explicit all-language exceptions; any new unclassified public operation fails. The TypeScript transport propagates request ID, trace context, idempotency key, timeout, and cancellation; independent review found the pre-aborted-signal edge, fixed at the reviewed head with a regression test. TreeDX no longer depends on `@treeseed/sdk` or its deleted content publisher. Local router/OpenAPI 4/4, TypeScript 35/35, Python 32 passed/one optional live skipped, Rust 42/42, Elixir 32/32, SDK-spec, generated-freshness, and packed-package checks pass. Exact-head PR runs `32593810903` and `32593814202` passed; staging release gate `32594038645` is active. No package publication or TreeDX mutation occurred. diff --git a/package.json b/package.json deleted file mode 100644 index 761c8c90..00000000 --- a/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@treeseed/platform", - "version": "0.2.0-rc.1", - "private": true, - "license": "Apache-2.0", - "type": "module", - "packageManager": "npm@11.7.0", - "engines": { - "node": ">=22" - }, - "devDependencies": { - "@treeseed/sdk": "0.13.0-rc.59", - "yaml": "2.9.0" - }, - "scripts": { - "capacity-provider:sync": "node scripts/synchronize-capacity-provider-manifests.mjs", - "capacity-provider:check": "node scripts/synchronize-capacity-provider-manifests.mjs --check", - "guarantees:plan": "node scripts/plan-composition-guarantees.mjs", - "guarantees:run": "node scripts/run-composition-guarantees.mjs", - "test:guarantee-plan": "node scripts/test-composition-guarantee-plan.mjs", - "test:guarantee-run": "node scripts/test-composition-guarantee-run.mjs", - "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", - "verify": "npm run capacity-provider:check && node scripts/verify-platform.mjs", - "verify:local": "npm run capacity-provider:check && node scripts/verify-platform.mjs" - } -} diff --git a/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml deleted file mode 100644 index dadc93e0..00000000 --- a/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml +++ /dev/null @@ -1,68 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.agent.system.guide-golden.918 -journeyIndex: 918 -type: agent -subtype: system -journey: Prove editorial Guide development end to end -ownerPackage: "@treeseed/market" -surface: cli -summary: Editorial agents improve canonical Guide content through the governed lifecycle with semantic target-ref read-back and zero residue. -status: planned -capabilityId: agent.system.guide-golden -catalog: agent.system -activation: - minimumConsecutivePasses: 3 - requiredVariants: [baseline, clean-repeat, interruption-resume] - invalidateOnSourceChange: true - distinctEntityRefs: - - subject: ephemeralProject - variants: [baseline, interruption-resume] -proof: - requiredCommands: [projects.list, capacity.context-query-checks, governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.workday-summary, capacity.treedx-proxy-audit, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - guide.editorial-lifecycle: [guide.dynamic-context, guide.proposal, guide.simulated-human-decision, guide.estimate, guide.writing, guide.editorial-review, guide.technical-review, guide.reporting, guide.settlement, guide.cleanup] - guide.semantic-content-outcome: [guide.pages, guide.required-claims, guide.relationships, guide.navigation, guide.receipts, guide.signals, guide.target-ref-read-back] - guide.ephemeral-baseline: [guide.ephemeral-project, guide.isolated-project] - guide.canonical-integration: [guide.canonical-project, guide.target-ref-read-back] - guide.ephemeral-interruption: [guide.ephemeral-project, guide.interruption-resume, guide.zero-residue] -outcomes: - - id: guide.editorial-lifecycle - kind: required - description: Dynamic context, proposal, decision, estimate, writing, independent editorial and technical review, reporting, settlement, and cleanup are exact and governed. - evidenceKinds: [redacted_cli_transcript, workflow_graph, treedx_read_back] - authoritativeSubjects: [proposalRevision, decision, workday, summaryRef] - - id: guide.semantic-content-outcome - kind: required - description: Intended Guide pages, claims, relationships, navigation placement, receipts, and signals exist at the observed target ref. - evidenceKinds: [semantic_content_assertions, mutation_receipt, repository_read_back] - authoritativeSubjects: [contentArtifacts, integratedRef, targetRef] - - id: guide.ephemeral-baseline - kind: required - variants: [baseline] - description: The baseline run uses one isolated ephemeral Guide project. - evidenceKinds: [project_inventory, cleanup] - authoritativeSubjects: [ephemeralProject, targetRef] - - id: guide.canonical-integration - kind: required - variants: [clean-repeat] - description: The clean repeat integrates the intended outcome into the canonical Guide project. - evidenceKinds: [project_inventory, repository_read_back] - authoritativeSubjects: [canonicalProject, targetRef] - - id: guide.ephemeral-interruption - kind: required - variants: [interruption-resume] - description: The interruption run uses a second isolated ephemeral Guide project and resumes without residue. - evidenceKinds: [project_inventory, replay_trace, cleanup] - authoritativeSubjects: [ephemeralProject, targetRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.portability.project-fork.920] } -actors: { allowed: [capacity_operator, simulated_human], forbidden: [anonymous_user, unauthorized_user] } -devices: { required: [] } -gates: [core] -preconditions: { fixtures: [ephemeral_guide_project, canonical_guide_project] } -api: { required: true, verifierRefs: [market.agent-catalog.golden-live-proof] } -content: { required: true, verifierRefs: [] } -audit: { required: true, verifierRefs: [] } -negativeCases: [] -evidence: { required: [verifier_evidence, redacted_cli_transcript] } -notes: ["Operational readiness begins only when this capability reaches active status."] diff --git a/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml deleted file mode 100644 index f7402527..00000000 --- a/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml +++ /dev/null @@ -1,48 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.agent.system.source-golden.917 -journeyIndex: 917 -type: agent -subtype: system -journey: Prove bounded source development end to end -ownerPackage: "@treeseed/market" -surface: cli -summary: Authenticated CLI orchestration drives all six profiles through exact-ref source work, independent review, revision, integration, settlement, and cleanup. -status: planned -capabilityId: agent.system.source-golden -catalog: agent.system -activation: { minimumConsecutivePasses: 3, requiredVariants: [baseline, clean-repeat, interruption-resume], invalidateOnSourceChange: true } -proof: - requiredCommands: [governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.checkpoint-integrate, capacity.workday-summary, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - source.complete-governed-lifecycle: [source.planning, source.chat, source.estimating, source.acting, source.reviewing, source.reporting, source.simulated-human-transcript, source.settlement] - source.semantic-repository-outcome: [source.exact-local-ref, source.exact-remote-ref, source.behavior, source.verification, source.receipt, source.review, source.integration, source.zero-residue] - source.rejection-revision: [source.fixture-provenance, source.initial-rejection, source.real-codex-revision, source.distinct-final-reviewer, source.exact-revision-approval] -outcomes: - - id: source.complete-governed-lifecycle - kind: required - description: Proposal, simulated-human decision, estimate, accepted plan, acting, review, report, and settlement use exact refs and authenticated CLI operations. - evidenceKinds: [redacted_cli_transcript, workflow_graph] - authoritativeSubjects: [proposalRevision, decision, capacityPlan, workday, targetRef] - - id: source.semantic-repository-outcome - kind: required - description: Required behavior exists at exact local and remote refs with verification, receipts, review, integration, and zero residue. - evidenceKinds: [git_read_back, verification, mutation_receipt, cleanup] - authoritativeSubjects: [checkpointRef, reviewedRef, integratedRef, remoteRef] - - id: source.rejection-revision - kind: required - variants: [interruption-resume] - description: The interruption variant rejects a pre-seeded deficient checkpoint, real Codex revises it, and a distinct reviewer approves the revision. - evidenceKinds: [fixture_provenance, review_read_back, revised_diff] - authoritativeSubjects: [deficientCheckpointRef, rejectionRef, revisedCheckpointRef, approvalRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.lifecycle.simulation-upstream-isolation.919] } -actors: { allowed: [capacity_operator, simulated_human], forbidden: [anonymous_user, unauthorized_user] } -devices: { required: [] } -gates: [core] -preconditions: { fixtures: [bounded_source_project] } -api: { required: true, verifierRefs: [market.agent-catalog.golden-live-proof] } -content: { required: true, verifierRefs: [] } -audit: { required: true, verifierRefs: [] } -negativeCases: [] -evidence: { required: [verifier_evidence, redacted_cli_transcript] } -notes: ["The deficient checkpoint is fixture evidence and is never attributed to an agent."] diff --git a/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml deleted file mode 100644 index 4a913839..00000000 --- a/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml +++ /dev/null @@ -1,65 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.capacity.research.verify-autonomous-cited-research-starter.510 -journeyIndex: 510 -type: capacity -subtype: research -journey: Verify Autonomous Cited Research Starter -ownerPackage: "@treeseed/market" -surface: agent-runtime -summary: "Prove the reconciled research starter autonomously decomposes a question, applies source policy, gathers independent evidence, rejects an unsupported claim, revises it, preserves contradiction, publishes cited knowledge, reports the workday, settles usage, and cleans up." -status: planned -capabilityId: agent.system.research-golden -catalog: agent.system -activation: { minimumConsecutivePasses: 3, requiredVariants: [baseline, clean-repeat, interruption-resume], invalidateOnSourceChange: true } -proof: - requiredCommands: [governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.workday-summary, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - research.governed-synthesis: [research.dynamic-context, research.two-independent-sources, research.claim-synthesis, research.source-policy, research.unsupported-claim-denial] - research.review-and-publication: [research.initial-rejection, research.semantic-revision, research.independent-approval, research.cited-output, research.reporting, research.settlement, research.cleanup] -outcomes: - - id: research.governed-synthesis - kind: required - description: Real governed retrieval supplies at least two independent cited sources and unsupported claims are denied. - evidenceKinds: [retrieval_receipt, citation_read_back, execution_trace] - authoritativeSubjects: [sourceRefs, claimArtifact] - - id: research.review-and-publication - kind: required - description: Rejection, semantic revision, independent approval, cited knowledge output, reporting, settlement, and cleanup use exact refs. - evidenceKinds: [review_read_back, repository_read_back, cleanup] - authoritativeSubjects: [rejectedCheckpointRef, approvedCheckpointRef, targetRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.system.source-golden.917] } -actors: - allowed: [team_owner, capacity_provider, capacity_operator] - forbidden: [unapproved_capacity_provider, revoked_capacity_provider] -gates: [future] -preconditions: - fixtures: [integrated_treeseed_project] - notes: - - "The canonical local development stack and reconciled research starter TreeDX repository must be ready." -scene: - required: false -api: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -content: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -audit: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -negativeCases: - - id: unsupported-material-claim-cannot-pass-review - actor: capacity_provider - verifierRefs: [market.agent-catalog.golden-live-proof] - - id: research-cannot-bypass-source-policy - actor: capacity_provider - verifierRefs: [market.agent-catalog.golden-live-proof] -evidence: - required: [guarantee_report, verifier_evidence, api_verification_log, audit_event_id] -notes: - - "Reopened on 2026-07-20: scripted source and execution evidence was withdrawn. Reactivate only after governed real-source collection and the complete real-provider revision workflow pass." - - "The verifier requires all four starter roles, every canonical stage with one settled assignment per attempt, two independent citations with hashes and retrieval metadata, rejection and at least one revision, repeated revision/review when approval is withheld, cited publication only after approval, Reporter completion, continuous access-token refresh, and terminal cleanup." -run: - timeoutSeconds: 14400 - requiredForRelease: false diff --git a/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml b/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml deleted file mode 100644 index 4abea416..00000000 --- a/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml +++ /dev/null @@ -1,70 +0,0 @@ -schemaVersion: treeseed.guarantee-verifiers/v1 -ownerPackage: "@treeseed/market" -verifiers: - market.portfolio.licensing: - kind: vitestCase - ownerPackage: "@treeseed/market" - testFile: tests/contract/architecture/portfolio-licensing.test.ts - timeoutSeconds: 60 - market.gateway.admin-route-inventory: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/gateway/admin-passthrough.test.ts - timeoutSeconds: 60 - market.gateway.private-workspace-overlay: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/seeds/managed-workspace-overlay.test.ts - timeoutSeconds: 60 - market.capacity.sdk-operator-contract: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/agent-capacity/capacity-operator-surface.test.ts - timeoutSeconds: 60 - market.capacity.sdk-configuration-contract: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/contract/agent-capacity/capacity-configuration.test.ts - timeoutSeconds: 60 - market.capacity.api-operator-contract: - kind: vitestCase - ownerPackage: "@treeseed/api" - testFile: tests/integration/repositories/capacity-operator-routes.test.ts - timeoutSeconds: 120 - market.capacity.api-descriptor-contract: - kind: vitestCase - ownerPackage: "@treeseed/api" - testFile: tests/contract/api/api-route-descriptors.test.ts - timeoutSeconds: 120 - market.capacity.cli-operator-contract: - kind: nodeScript - ownerPackage: "@treeseed/cli" - command: packages/cli/tests/contract/capacity/operator-parity.test.ts - timeoutSeconds: 120 - market.capacity.cli-secret-contract: - kind: nodeScript - ownerPackage: "@treeseed/cli" - command: packages/cli/tests/contract/capacity/output-security.test.ts - timeoutSeconds: 120 - market.capacity.full-local-lifecycle: - kind: packageScript - ownerPackage: "@treeseed/market" - command: guarantee:capacity-local-acceptance - timeoutSeconds: 7200 - market.capacity.failure-concurrency-matrix: - kind: vitestCase - ownerPackage: "@treeseed/market" - testFile: tests/integration/capacity/capacity-failure-concurrency-service-workflow.test.ts - testName: recovers interruption, fences stale leases, limits cross-project pressure, and preserves human policy - timeoutSeconds: 60 - market.agent-testing.production-lab-content: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/scenes/agent-lab/agent-lab-contract.test.ts - timeoutSeconds: 120 - market.agent-catalog.golden-live-proof: - kind: nodeScript - ownerPackage: "@treeseed/market" - command: scripts/guarantees/verify-agent-capability.ts - timeoutSeconds: 7200 - resultSchema: treeseed.guarantee-verifier-result/v1 diff --git a/profiles/capacity-provider.yaml b/profiles/capacity-provider.yaml new file mode 100644 index 00000000..ac97bfce --- /dev/null +++ b/profiles/capacity-provider.yaml @@ -0,0 +1,5 @@ +schemaVersion: treeseed.platform-profile/v1 +id: capacity-provider +extends: [] +sources: { projects: [sdk, cli, agent, deployment] } +runtime: { targets: [capacity-provider.agent, capacity-provider.sandbox] } diff --git a/profiles/control-plane.yaml b/profiles/control-plane.yaml new file mode 100644 index 00000000..656d46da --- /dev/null +++ b/profiles/control-plane.yaml @@ -0,0 +1,6 @@ +schemaVersion: treeseed.platform-profile/v1 +id: control-plane +extends: [] +sources: { projects: [sdk, cli, ui, core, admin, api, reviewer, treedx, deployment] } +runtime: + targets: [control-plane.api, control-plane.postgres, control-plane.operations, control-plane.admin, control-plane.treedx, development.lab] diff --git a/profiles/core.yaml b/profiles/core.yaml new file mode 100644 index 00000000..ef614d3b --- /dev/null +++ b/profiles/core.yaml @@ -0,0 +1,6 @@ +schemaVersion: treeseed.platform-profile/v1 +id: core +extends: [] +sources: + projects: [platform, deployment, api, treedx, sdk, ui, cli, core, admin, agent, reviewer, template-engineering, template-research, market, market-api, skill] +runtime: { targets: [released.all] } diff --git a/profiles/treeai.yaml b/profiles/treeai.yaml new file mode 100644 index 00000000..46588520 --- /dev/null +++ b/profiles/treeai.yaml @@ -0,0 +1,7 @@ +schemaVersion: treeseed.platform-profile/v1 +id: treeai +extends: [] +sources: { projects: [sdk, cli, api, admin, agent, reviewer, treedx, deployment] } +runtime: + targets: [treeai.inference, treeai.training, treeai.lab] + defaultEnabled: false diff --git a/scenes/team-project-portfolio-demo.yaml b/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 91df691d..00000000 --- a/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev session start development.acceptance.session.yaml --actor scene-runner --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/scripts/guarantees/agent-catalog/cli-runtime.ts b/scripts/guarantees/agent-catalog/cli-runtime.ts deleted file mode 100644 index 7dd0482c..00000000 --- a/scripts/guarantees/agent-catalog/cli-runtime.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { spawnSync } from 'node:child_process'; -import { resolve } from 'node:path'; - -export type ProofCommandResult = { - id:string;args:string[];exitCode:number;payload:Record;stdout:string;stderr:string; -}; - -export function runProofCli(workspaceRoot:string,id:string,args:string[]):ProofCommandResult { - const result=spawnSync(process.execPath,[resolve(workspaceRoot,'packages/cli/dist/cli/main.js'),...args,'--json'],{ - cwd:workspaceRoot,env:process.env,encoding:'utf8',maxBuffer:20*1024*1024, - }); - let payload:Record={}; - try { const start=result.stdout.indexOf('{'); payload=JSON.parse(result.stdout.slice(start)) as Record; } catch { /* raw output remains evidence */ } - return {id,args,exitCode:result.status??1,payload,stdout:result.stdout,stderr:result.stderr}; -} - -export function redactProofValue(value:unknown):unknown { - if(Array.isArray(value)) return value.map(redactProofValue); - if(value&&typeof value==='object') return Object.fromEntries(Object.entries(value as Record).map(([key,entry])=>[ - key,/secret|token|password|authorization|cookie|private.?key/iu.test(key)?'':redactProofValue(entry), - ])); - if(typeof value==='string') return value.replace(/Bearer\s+[^\s"']+/giu,'Bearer '); - return value; -} - -export function redactProofArgs(args:string[]) { - let redactNext=false; - return args.map((value)=>{ - if(redactNext) { redactNext=false; return ''; } - if(/^--(?:document|password|secret|token|authorization|private-key)$/iu.test(value)) redactNext=true; - return value; - }); -} diff --git a/scripts/guarantees/agent-catalog/json-evidence.ts b/scripts/guarantees/agent-catalog/json-evidence.ts deleted file mode 100644 index aa15fe78..00000000 --- a/scripts/guarantees/agent-catalog/json-evidence.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { AgentGuaranteeProofPredicate,AgentGuaranteeProofValueRef } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import type { ProofCommandResult } from './cli-runtime.ts'; - -function children(value:unknown,token:string):unknown[] { - const wildcard=token.endsWith('[*]'); const key=wildcard?token.slice(0,-3):token; - const indexed=wildcard?null:key.match(/^(.*)\[(\d+)\]$/u); - if(indexed) { - const selected=indexed[1] ? (value&&typeof value==='object'&&!Array.isArray(value)?(value as Record)[indexed[1]]:undefined) : value; - return Array.isArray(selected)?[selected[Number(indexed[2])]]:[]; - } - const selected=key ? (value&&typeof value==='object'&&!Array.isArray(value)?(value as Record)[key]:undefined) : value; - return wildcard ? (Array.isArray(selected)?selected:[]) : [selected]; -} - -export function evidenceValues(results:Map,ref:AgentGuaranteeProofValueRef):unknown[] { - let values:unknown[]=[results.get(ref.commandId)?.payload]; - for(const token of ref.path.split('.').filter(Boolean)) values=values.flatMap((value)=>children(value,token)); - return values.filter((value)=>value!==undefined); -} - -function normalized(value:unknown){ return JSON.stringify(value); } -function expectedValue(results:Map,predicate:AgentGuaranteeProofPredicate):unknown { - if(predicate.expectedRef) { const values=evidenceValues(results,predicate.expectedRef); return values.length===1?values[0]:values; } - return predicate.expected; -} - -export function evaluatePredicate(results:Map,predicate:AgentGuaranteeProofPredicate) { - const values=evidenceValues(results,predicate); const expected=expectedValue(results,predicate); - let passed=false; - if(predicate.operator==='exists') passed=values.some((value)=>value!==null&&value!==''&&(!Array.isArray(value)||value.length>0)); - if(predicate.operator==='equals') passed=values.length>0&&values.every((value)=>normalized(value)===normalized(expected)); - if(predicate.operator==='not-equals') passed=values.length>0&&values.every((value)=>normalized(value)!==normalized(expected)); - if(predicate.operator==='includes') passed=values.length>0&&values.every((value)=>typeof value==='string'?value.includes(String(expected)):Array.isArray(value)&&value.some((entry)=>normalized(entry)===normalized(expected))); - if(predicate.operator==='matches') { try { const pattern=new RegExp(String(expected),'u'); passed=values.length>0&&values.every((value)=>pattern.test(String(value))); } catch { passed=false; } } - if(predicate.operator==='length-at-least') passed=values.length>0&&values.every((value)=>(typeof value==='string'||Array.isArray(value))&&value.length>=Number(expected)); - if(predicate.operator==='distinct') { const flattened=values.flatMap((value)=>Array.isArray(value)?value:[value]).filter((value)=>value!==null&&value!==''); passed=flattened.length>=2&&new Set(flattened.map(normalized)).size===flattened.length; } - return {passed,diagnostic:passed?'':`${predicate.id} failed: ${predicate.path} ${predicate.operator} ${normalized(expected)}; observed ${normalized(values)}.`}; -} - -export function scalarEvidence(results:Map,ref:AgentGuaranteeProofValueRef) { - const values=evidenceValues(results,ref).flatMap((value)=>Array.isArray(value)?value:[value]).filter((value)=>value!==undefined&&value!==null&&value!==''); - return values.length===1?String(values[0]):values.map(String).join(','); -} diff --git a/scripts/guarantees/agent-catalog/proof-executor.ts b/scripts/guarantees/agent-catalog/proof-executor.ts deleted file mode 100644 index 516cfbee..00000000 --- a/scripts/guarantees/agent-catalog/proof-executor.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { mkdirSync,writeFileSync } from 'node:fs'; -import { relative,resolve } from 'node:path'; -import type { AgentGuaranteeProofInput,GuaranteeVerifierResult } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import { redactProofArgs,redactProofValue,runProofCli,type ProofCommandResult } from './cli-runtime.ts'; -import { evidenceValues,evaluatePredicate,scalarEvidence } from './json-evidence.ts'; - -const numberEvidence=(results:Map,ref:Parameters[1])=>Number(evidenceValues(results,ref)[0]??Number.NaN); -const booleanEvidence=(results:Map,ref:Parameters[1])=>evidenceValues(results,ref)[0]===true; - -export function executeProof(input:{workspaceRoot:string;outputRoot:string;guaranteeId:string;sourceGeneration:string;proof:AgentGuaranteeProofInput}) : GuaranteeVerifierResult { - const evidenceRoot=resolve(input.outputRoot,'agent-catalog',input.proof.capabilityId.replaceAll('.','-')); - mkdirSync(evidenceRoot,{recursive:true}); - const results=new Map(); const evidenceByCommand=new Map(); - for(const command of input.proof.commands) { - const result=runProofCli(input.workspaceRoot,command.id,command.args); results.set(command.id,result); - const path=resolve(evidenceRoot,`${command.id}.json`); - writeFileSync(path,`${JSON.stringify(redactProofValue({command:['trsd',...redactProofArgs(command.args)],expectedExitCode:command.expectedExitCode,exitCode:result.exitCode,payload:result.payload}),null,2)}\n`); - evidenceByCommand.set(command.id,relative(input.workspaceRoot,path).replaceAll('\\','/')); - } - const assertions=input.proof.outcomes.map((outcome)=>{ - const commandFailures=outcome.evidenceCommands.filter((id)=>{ - const command=input.proof.commands.find((entry)=>entry.id===id); return !command||results.get(id)?.exitCode!==command.expectedExitCode; - }); - const predicateResults=outcome.predicates.map((predicate)=>evaluatePredicate(results,predicate)); - const diagnostics=[...commandFailures.map((id)=>`Command ${id} did not return its declared exit code.`),...predicateResults.filter((entry)=>!entry.passed).map((entry)=>entry.diagnostic)]; - return {id:outcome.outcomeId,status:diagnostics.length?'failed' as const:'passed' as const,evidence:outcome.evidenceCommands.map((id)=>evidenceByCommand.get(id)!).filter(Boolean),entityRefs:Object.fromEntries(Object.entries(outcome.entityRefs).map(([key,value])=>[key,scalarEvidence(results,value)])),diagnostics}; - }); - const repositoryPostconditions=input.proof.repositoryPostconditions.map((entry)=>({ - repository:entry.repository,baseRef:scalarEvidence(results,entry.baseRef),effectiveRef:scalarEvidence(results,entry.effectiveRef),...(entry.targetRef?{targetRef:scalarEvidence(results,entry.targetRef)}:{}),changedPaths:evidenceValues(results,entry.changedPaths).flatMap((value)=>Array.isArray(value)?value:[value]).map(String),readBackVerified:booleanEvidence(results,entry.readBackVerified), - })); - const cleanup=input.proof.cleanup; - return {schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId:input.guaranteeId,capabilityId:input.proof.capabilityId,variant:input.proof.variant,sourceGeneration:input.sourceGeneration,assertions,repositoryPostconditions,cleanup:{verified:booleanEvidence(results,cleanup.verified),activeAssignments:numberEvidence(results,cleanup.activeAssignments),activeLeases:numberEvidence(results,cleanup.activeLeases),activeReservations:numberEvidence(results,cleanup.activeReservations),activeDemands:numberEvidence(results,cleanup.activeDemands),activeWorkspaces:numberEvidence(results,cleanup.activeWorkspaces),activeWorktrees:numberEvidence(results,cleanup.activeWorktrees),unpublishedBranches:numberEvidence(results,cleanup.unpublishedBranches),staleAuthorities:numberEvidence(results,cleanup.staleAuthorities)},evidence:[...evidenceByCommand.values()]}; -} diff --git a/scripts/guarantees/agent-catalog/proof-input.ts b/scripts/guarantees/agent-catalog/proof-input.ts deleted file mode 100644 index 6f5c47cf..00000000 --- a/scripts/guarantees/agent-catalog/proof-input.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { existsSync,readFileSync } from 'node:fs'; -import { isAbsolute,relative,resolve } from 'node:path'; -import type { GuaranteeCatalogContract } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import { parseAgentGuaranteeProofInput } from '../../../packages/sdk/src/guarantees/contracts/parse-agent-guarantee-proof.ts'; - -export function loadProofInput(input:{workspaceRoot:string;contract:GuaranteeCatalogContract;variant:string;sourceGeneration:string}) { - let state:Record={}; - try { state=JSON.parse(process.env.TREESEED_GUARANTEE_RUN_STATE??'{}') as Record; } catch { /* diagnosed below */ } - const configured=typeof state.agentProofInput==='string'?state.agentProofInput.trim():''; - if(!configured) return {ok:false as const,issues:['This capability requires --proof-input .']}; - const path=resolve(input.workspaceRoot,configured); const traversal=relative(input.workspaceRoot,path); - if(isAbsolute(configured)||traversal.startsWith('..')||isAbsolute(traversal)) return {ok:false as const,issues:['Proof input must be workspace-relative.']}; - if(!existsSync(path)) return {ok:false as const,issues:[`Proof input ${configured} does not exist.`]}; - let parsed:unknown; - try { parsed=JSON.parse(readFileSync(path,'utf8')); } catch(error) { return {ok:false as const,issues:[`Proof input is not valid JSON: ${error instanceof Error?error.message:String(error)}`]}; } - const result=parseAgentGuaranteeProofInput(parsed,input.contract,input.variant,input.sourceGeneration); - return result.ok?{ok:true as const,proof:result.proof,path}:{ok:false as const,issues:result.issues}; -} diff --git a/scripts/guarantees/verify-agent-capability.ts b/scripts/guarantees/verify-agent-capability.ts deleted file mode 100644 index 2bdec377..00000000 --- a/scripts/guarantees/verify-agent-capability.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { resolve } from 'node:path'; -import { spawnSync } from 'node:child_process'; -import { mkdirSync,writeFileSync } from 'node:fs'; -import { relative } from 'node:path'; -import { discoverGuarantees } from '../../packages/sdk/src/guarantees/index/parse-verifier-registry.ts'; -import { executeProof } from './agent-catalog/proof-executor.ts'; -import { loadProofInput } from './agent-catalog/proof-input.ts'; - -const workspaceRoot = resolve(process.cwd()); -const guaranteeId = process.env.TREESEED_GUARANTEE_ID?.trim() ?? ''; -const capabilityId = process.env.TREESEED_GUARANTEE_CAPABILITY_ID?.trim() ?? ''; -const sourceGeneration = process.env.TREESEED_GUARANTEE_SOURCE_GENERATION?.trim() ?? ''; -const variant = process.env.TREESEED_GUARANTEE_VARIANT?.trim() ?? ''; -const registry = discoverGuarantees({ workspaceRoot, filter: { ids: guaranteeId ? [guaranteeId] : [] } }); -const guarantee = registry.guarantees.find((entry) => entry.manifest?.id === guaranteeId)?.manifest; -if (!guarantee?.catalogContract || guarantee.catalogContract.capabilityId !== capabilityId) { - throw new Error('The requested canonical agent capability does not resolve to its exact v2 guarantee contract.'); -} - -function cli(args:string[]) { - const result=spawnSync(process.execPath,[resolve(workspaceRoot,'packages/cli/dist/cli/main.js'),...args,'--json'],{cwd:workspaceRoot,env:process.env,encoding:'utf8',maxBuffer:10*1024*1024,timeout:180_000,killSignal:'SIGTERM'}); - let payload:Record={}; - try { payload=JSON.parse(result.stdout.slice(result.stdout.indexOf('{'))) as Record; } catch { /* captured below */ } - return {args,exitCode:result.status??1,payload,stdout:result.stdout,stderr:`${result.stderr}${result.error?`\n${result.error.message}`:''}`,required:true}; -} - -function contextChecksReady(probe:ReturnType) { - return probe.exitCode===0&&/^[a-f0-9]{40}$/u.test(String(probe.payload.definitionCommit??'')) - &&Array.isArray(probe.payload.tests)&&probe.payload.tests.length>0 - &&Array.isArray(probe.payload.definitions)&&probe.payload.definitions.length>0 - &&Array.isArray(probe.payload.unpublishedAuthoring); -} - -function stableContextChecks(transcript:Array>,args:string[],minimumStableMs=0) { - const startedAt=Date.now(); let consecutive=0; let last:ReturnType|null=null; - for(let attempt=0;attempt<40;attempt+=1) { - const probe=cli(args); - last=probe; consecutive=contextChecksReady(probe)?consecutive+1:0; - const stable=Date.now()-startedAt>=minimumStableMs&&consecutive>=3; - const terminal=stable||attempt===39; - transcript.push({...probe,required:terminal,recoveryProbe:true,attempt:attempt+1}); - if(stable) return probe; - Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,750); - } - return last!; -} - -function containsResultPayload(value:unknown):boolean { - if(Array.isArray(value)) return value.some(containsResultPayload); - if(!value||typeof value!=='object') return false; - return Object.entries(value as Record).some(([key,entry])=>key==='result'||containsResultPayload(entry)); -} - -function redact(value:unknown):unknown { - if(Array.isArray(value)) return value.map(redact); - if(value&&typeof value==='object') return Object.fromEntries(Object.entries(value as Record).map(([key,entry])=>[/secret|token|password|authorization|cookie/iu.test(key)?key:key,/secret|token|password|authorization|cookie/iu.test(key)?'':redact(entry)])); - if(typeof value==='string') return value.replace(/Bearer\s+[^\s"']+/giu,'Bearer '); - return value; -} - -function contextReadinessProof() { - const team=process.env.TREESEED_AGENT_GUARANTEE_TEAM?.trim()||'treeseed'; - const market=process.env.TREESEED_AGENT_GUARANTEE_MARKET?.trim()||'local'; - const projectSelector=process.env.TREESEED_AGENT_GUARANTEE_PROJECT?.trim()||'market'; - const transcript:Array>=[]; - const projects=cli(['projects','list','--market',market]); transcript.push(projects); - const projectRows=Array.isArray(projects.payload.projects)?projects.payload.projects.filter((entry):entry is Record=>Boolean(entry&&typeof entry==='object')):[]; - const selectedProject=projectRows.find((entry)=>entry.id===projectSelector||entry.slug===projectSelector); - const project=String(selectedProject?.id??''); - const exactTeam=String(selectedProject?.teamId??team); - const checksArgs=['capacity','context-query-checks','--market',market,'--team',exactTeam,'--project',project]; - const before=project?stableContextChecks(transcript,checksArgs):{args:['capacity','context-query-checks'],exitCode:1,payload:{},stdout:'',stderr:`Project ${projectSelector} was not found.`,required:true}; - if(!project) transcript.push(before); - const tests=Array.isArray(before.payload.tests)?before.payload.tests.filter((entry):entry is Record=>Boolean(entry&&typeof entry==='object'&&Array.isArray((entry as Record).requiredBy)&&((entry as Record).requiredBy as unknown[]).length>0)):[]; - for(const [index,test] of tests.entries()) { - const id=String(test.id??''); if(!id) continue; - transcript.push(cli(['capacity','context-query-test','--market',market,'--team',exactTeam,'--project',project,'--agent-test',id,'--idempotency-key',`guarantee:${sourceGeneration}:${variant}:${id}`])); - if(variant==='interruption-resume'&&index===0) { - transcript.push(cli(['dev','restart','--app','api'])); - stableContextChecks(transcript,checksArgs,15_000); - } - } - const after=project?stableContextChecks(transcript,checksArgs):before; - const outputRoot=resolve(process.env.TREESEED_GUARANTEE_OUTPUT_ROOT||'.treeseed/guarantees/unscoped'); - mkdirSync(resolve(outputRoot,'agent-catalog'),{recursive:true}); - const transcriptPath=resolve(outputRoot,'agent-catalog','dynamic-context-transcript.json'); - writeFileSync(transcriptPath,`${JSON.stringify(redact(transcript.map(({args,exitCode,payload,stderr,required,recoveryProbe,attempt})=>({command:['trsd',...(args as string[])],exitCode,payload,stderr,required,recoveryProbe,attempt}))),null,2)}\n`); - const evidencePath=relative(workspaceRoot,transcriptPath).replaceAll('\\','/'); - const requiredTests=Array.isArray(after.payload.tests)?after.payload.tests.filter((entry)=>Array.isArray((entry as Record)?.requiredBy)&&((entry as {requiredBy:unknown[]}).requiredBy.length>0)):[]; - const passingTests=requiredTests.length>0&&requiredTests.every((entry)=>Boolean((entry as Record)?.readiness&&((entry as {readiness?:{selectable?:unknown}}).readiness?.selectable===true))); - const requiredDefinitions=Array.isArray(after.payload.definitions)?after.payload.definitions.filter((entry)=>Array.isArray((entry as Record)?.requiredBy)&&((entry as {requiredBy:unknown[]}).requiredBy.length>0)):[]; - const selectableDefinitions=requiredDefinitions.length>0&&requiredDefinitions.every((entry)=>((entry as {readiness?:{selectable?:unknown}}).readiness?.selectable===true)); - const commandsPassed=transcript.filter((entry)=>entry.required!==false).every((entry)=>entry.exitCode===0); - const noResultsPersisted=!transcript.filter((entry)=>entry.args[0]==='capacity'&&String(entry.args[1]).startsWith('context-query')).some((entry)=>containsResultPayload(entry.payload)); - const definitionCommit=String(after.payload.definitionCommit??''); - const authoringIdentity=(entry:unknown)=>entry&&typeof entry==='object'?`${String((entry as Record).commitSha??'')}:${String((entry as Record).ref??'')}`:''; - const afterAuthoring=Array.isArray(after.payload.unpublishedAuthoring)?after.payload.unpublishedAuthoring.map(authoringIdentity).filter(Boolean):[]; - return { - schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId,capabilityId,variant,sourceGeneration, - assertions:[ - {id:'context.current-results',status:commandsPassed&&passingTests&&selectableDefinitions?'passed':'failed',evidence:[evidencePath],entityRefs:{queryRevision:tests.map((test)=>`${String(test.definitionId)}@${String(test.definitionRevision)}`).join(','),observedSourceRef:definitionCommit},diagnostics:commandsPassed?[]:['One or more authenticated CLI query checks failed.']}, - {id:'context.results-not-persisted',status:noResultsPersisted?'passed':'failed',evidence:[evidencePath],entityRefs:{checkRecord:(Array.isArray(after.payload.items)?after.payload.items:[]).map((item)=>String((item as Record).id??'')).filter(Boolean).join(',')}}, - ],repositoryPostconditions:[], - cleanup:{verified:commandsPassed&&afterAuthoring.length===0,activeAssignments:0,activeLeases:0,activeReservations:0,activeDemands:0,activeWorkspaces:0,activeWorktrees:0,unpublishedBranches:afterAuthoring.length,staleAuthorities:0}, - evidence:[evidencePath], - }; -} - -if(capabilityId==='agent.context.dynamic-readiness') { - process.stdout.write(`${JSON.stringify(contextReadinessProof(),null,2)}\n`); - process.exit(0); -} - -const loaded=loadProofInput({workspaceRoot,contract:guarantee.catalogContract,variant,sourceGeneration}); -if(!loaded.ok) { - process.stdout.write(`${JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId,capabilityId,variant,sourceGeneration,assertions:guarantee.catalogContract.outcomes.map((outcome)=>({id:outcome.id,status:'blocked',evidence:[],diagnostics:loaded.issues})),repositoryPostconditions:[],cleanup:{verified:false,activeAssignments:-1,activeLeases:-1,activeReservations:-1,activeDemands:-1,activeWorkspaces:-1,activeWorktrees:-1,unpublishedBranches:-1,staleAuthorities:-1},evidence:[]},null,2)}\n`); - process.exit(0); -} -process.stdout.write(`${JSON.stringify(executeProof({workspaceRoot,outputRoot:resolve(process.env.TREESEED_GUARANTEE_OUTPUT_ROOT||'.treeseed/guarantees/unscoped'),guaranteeId,sourceGeneration,proof:loaded.proof}),null,2)}\n`); diff --git a/scripts/plan-composition-guarantees.mjs b/scripts/plan-composition-guarantees.mjs deleted file mode 100644 index 7cd62f79..00000000 --- a/scripts/plan-composition-guarantees.mjs +++ /dev/null @@ -1,175 +0,0 @@ -import { createHash } from 'node:crypto'; -import { execFileSync } from 'node:child_process'; -import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { relative, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); - -function option(name, fallback) { - const index = process.argv.indexOf(`--${name}`); - return index >= 0 ? process.argv[index + 1] : fallback; -} - -function csvOption(name) { - return new Set(String(option(name, '')).split(',').map((entry) => entry.trim()).filter(Boolean)); -} - -function verifierRefs(value, out = new Set()) { - if (Array.isArray(value)) for (const entry of value) verifierRefs(entry, out); - else if (value && typeof value === 'object') for (const [key, entry] of Object.entries(value)) { - if (key === 'verifierRefs' && Array.isArray(entry)) for (const id of entry) out.add(String(id)); - else verifierRefs(entry, out); - } - return out; -} - -function guaranteeVerifierRefs(manifest) { - const refs = verifierRefs(manifest); - if (manifest?.scene?.required === true && manifest.scene.executionKey) refs.add(String(manifest.scene.executionKey)); - for (const negative of manifest?.negativeCases ?? []) { - if (negative?.scene?.executionKey) refs.add(String(negative.scene.executionKey)); - } - return refs; -} - -function sceneVerifierRefs(manifest) { - return [manifest?.scene?.required === true ? manifest.scene.executionKey : null, - ...(manifest?.negativeCases ?? []).map((entry) => entry?.scene?.executionKey)].filter(Boolean).map(String); -} - -function dependencyIds(manifest) { - return Array.isArray(manifest?.dependencies?.guarantees) ? manifest.dependencies.guarantees.map(String) : []; -} - -async function materializePackage(payload, temporary) { - let body; - if (payload.artifact.url.startsWith('file:')) body = readFileSync(fileURLToPath(payload.artifact.url)); - else { - const response = await fetch(payload.artifact.url); - if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); - body = Buffer.from(await response.arrayBuffer()); - } - const digest = createHash('sha256').update(body).digest('hex'); - if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); - const archive = resolve(temporary, `${payload.id}.tgz`); - const output = resolve(temporary, payload.id); - writeFileSync(archive, body); - execFileSync('mkdir', ['-p', output]); - execFileSync('tar', ['-xzf', archive, '-C', output]); - return resolve(output, 'package'); -} - -function diagnostic(code, message, detail = {}) { - return { severity: 'error', code, message, ...detail }; -} - -const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); -const ownerFilter = option('owner-package', '@treeseed/admin'); -const types = new Set(String(option('types', 'user,team')).split(',').map((entry) => entry.trim()).filter(Boolean)); -const statuses = new Set(String(option('statuses', 'active')).split(',').map((entry) => entry.trim()).filter(Boolean)); -const guaranteeOwners = csvOption('guarantee-owner-package'); -const subtypes = csvOption('subtypes'); -const gates = csvOption('gates'); -const ids = csvOption('ids'); -const journeyIndexes = csvOption('journey-indexes'); -const includeDependencies = !process.argv.includes('--no-dependencies'); -const release = JSON.parse(readFileSync(releasePath, 'utf8')); -const payload = release.hostPayloads?.find((entry) => entry.packageName === ownerFilter); -if (!payload) throw new Error(`Composition ${release.release} does not select ${ownerFilter}.`); -const payloadsByPackage = new Map((release.hostPayloads ?? []).map((entry) => [entry.packageName, entry])); - -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-')); -try { - const packageRoot = await materializePackage(payload, temporary); - const catalogPath = resolve(packageRoot, 'dist/standards/guarantee-catalog.json'); - const diagnostics = []; - if (!existsSync(catalogPath)) diagnostics.push(diagnostic( - 'guarantee.catalog_missing_from_artifact', - `${ownerFilter}@${payload.version} does not contain its package-owned guarantees.`, - { artifact: payload.artifact.url }, - )); - let catalog = null; - try { if (existsSync(catalogPath)) catalog = JSON.parse(readFileSync(catalogPath, 'utf8')); } - catch (error) { diagnostics.push(diagnostic('guarantee.invalid_catalog', error instanceof Error ? error.message : String(error))); } - if (catalog && catalog.schemaVersion !== 'treeseed.guarantee-catalog/v1') diagnostics.push(diagnostic('guarantee.invalid_catalog', 'Packed guarantee catalog has an unsupported schema version.')); - const loaded = Array.isArray(catalog?.guarantees) ? catalog.guarantees.map((entry) => ({ path: resolve(packageRoot, entry.sourcePath), manifest: entry.manifest })) : []; - const byId = new Map(loaded.map((entry) => [String(entry.manifest.id ?? ''), entry])); - const selected = loaded.filter((entry) => statuses.has(String(entry.manifest.status)) && types.has(String(entry.manifest.type)) - && (!guaranteeOwners.size || guaranteeOwners.has(String(entry.manifest.ownerPackage))) - && (!subtypes.size || subtypes.has(String(entry.manifest.subtype))) - && (!gates.size || (entry.manifest.gates ?? []).some((gate) => gates.has(String(gate)))) - && (!ids.size || ids.has(String(entry.manifest.id))) - && (!journeyIndexes.size || journeyIndexes.has(String(entry.manifest.journeyIndex)))); - const closure = new Map(selected.map((entry) => [String(entry.manifest.id), { ...entry, selected: true }])); - const queue = [...selected]; - while (includeDependencies && queue.length) for (const dependency of dependencyIds(queue.shift().manifest)) { - if (closure.has(dependency)) continue; - const found = byId.get(dependency); - if (!found) diagnostics.push(diagnostic('guarantee.dependency_missing', `Guarantee dependency ${dependency} is absent from the packed catalog.`)); - else { closure.set(dependency, { ...found, selected: false }); queue.push(found); } - } - - const declared = {}; - const registrySources = {}; - for (const registry of catalog?.verifierRegistries ?? []) { - for (const [id, verifier] of Object.entries(registry?.document?.verifiers ?? {})) { - declared[id] = verifier; - registrySources[id] = registry.sourcePath; - } - } - const usedVerifierRefs = new Set(); - for (const entry of closure.values()) for (const ref of guaranteeVerifierRefs(entry.manifest)) { - usedVerifierRefs.add(ref); - const verifier = declared[ref]; - if (!verifier) diagnostics.push(diagnostic('guarantee.verifier_undeclared', `${entry.manifest.id} references undeclared verifier ${ref}.`)); - else if (!['artifact', 'catalogOperation'].includes(String(verifier.kind))) diagnostics.push(diagnostic( - 'guarantee.verifier_not_artifact_bound', - `${ref} uses ${verifier.kind}; exact compositions require an immutable artifact or catalog operation verifier.`, - { ownerPackage: verifier.ownerPackage, sourcePath: verifier.testFile ?? verifier.command ?? verifier.caseId }, - )); - } - for (const ref of usedVerifierRefs) { - const verifier = declared[ref]; - if (!verifier || !['artifact', 'catalogOperation'].includes(String(verifier.kind))) continue; - for (const field of verifier.kind === 'artifact' - ? ['ownerPackage', 'artifactId', 'entrypoint', 'caseId'] - : ['ownerPackage', 'operationId', 'caseId']) { - if (typeof verifier[field] !== 'string' || !verifier[field].trim()) diagnostics.push(diagnostic( - 'guarantee.verifier_field_missing', `${ref} is missing required ${field}.`, { verifierRef: ref, field }, - )); - } - if (!payloadsByPackage.has(verifier.ownerPackage)) diagnostics.push(diagnostic( - 'guarantee.verifier_payload_missing', `${ref} owner ${verifier.ownerPackage} is not selected as an exact host payload.`, - { verifierRef: ref, ownerPackage: verifier.ownerPackage }, - )); - if (verifier.kind === 'artifact' && (verifier.entrypoint.startsWith('/') || verifier.entrypoint.split('/').includes('..'))) diagnostics.push(diagnostic( - 'guarantee.verifier_entrypoint_unsafe', `${ref} has an unsafe artifact entrypoint.`, { verifierRef: ref, entrypoint: verifier.entrypoint }, - )); - } - - const results = [...closure.values()].map((entry) => ({ - id: String(entry.manifest.id), journey: String(entry.manifest.journey ?? entry.manifest.id), ownerPackage: String(entry.manifest.ownerPackage), - type: String(entry.manifest.type), subtype: String(entry.manifest.subtype), status: String(entry.manifest.status), selected: entry.selected, - dependency: !entry.selected, journeyIndex: entry.manifest.journeyIndex, gates: Array.isArray(entry.manifest.gates) ? entry.manifest.gates.map(String) : [], - releaseBlocking: entry.manifest.run?.requiredForRelease === true, - sourcePath: relative(packageRoot, entry.path).replaceAll('\\', '/'), sceneManifest: entry.manifest.scene?.manifest, - sceneVerifierRefs: sceneVerifierRefs(entry.manifest), - verifierRefs: [...guaranteeVerifierRefs(entry.manifest)].sort(), - })).sort((a, b) => a.id.localeCompare(b.id)); - const report = { - schemaVersion: 'treeseed.guarantee-plan/v1', ok: diagnostics.length === 0, - composition: { release: release.release, generation: release.generation, track: release.track }, - catalog: { packageName: ownerFilter, version: payload.version, artifact: payload.artifact }, - filter: { statuses: [...statuses], types: [...types], guaranteeOwners: [...guaranteeOwners], subtypes: [...subtypes], gates: [...gates], ids: [...ids], journeyIndexes: [...journeyIndexes], includeDependencies }, - counts: { selected: results.filter((entry) => entry.selected).length, withDependencies: results.length, errors: diagnostics.length }, - verifiers: [...usedVerifierRefs].sort().map((ref) => ({ ref, registrySource: registrySources[ref], definition: declared[ref] })), - payloads: [...new Set([...usedVerifierRefs].map((ref) => declared[ref]?.ownerPackage).filter(Boolean))].map((packageName) => payloadsByPackage.get(packageName)), - entries: results, results, diagnostics, - }; - process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); - process.exitCode = report.ok ? 0 : 1; -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs deleted file mode 100644 index 8cf895c5..00000000 --- a/scripts/run-composition-guarantees.mjs +++ /dev/null @@ -1,223 +0,0 @@ -import { createHash, randomUUID } from 'node:crypto'; -import { spawnSync } from 'node:child_process'; -import { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); - -function option(name, fallback) { - const index = process.argv.indexOf(`--${name}`); - return index >= 0 ? process.argv[index + 1] : fallback; -} - -function options(name) { - return process.argv.flatMap((entry, index) => entry === `--${name}` ? [process.argv[index + 1]] : []).filter(Boolean); -} - -function safePackagePath(packageName) { - if (!/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+$/iu.test(packageName)) throw new Error(`Unsafe package name ${packageName}.`); - return packageName.split('/'); -} - -function redact(value) { - return String(value ?? '') - .replace(/Bearer\s+[A-Za-z0-9._~-]+/giu, 'Bearer [REDACTED]') - .replace(/(?:confirm|reset)_[A-Za-z0-9_-]+/gu, '[REDACTED]') - .replace(/("(?:access_token|refresh_token|password|token)"\s*:\s*")[^"]+/giu, '$1[REDACTED]'); -} - -async function artifactBody(payload) { - if (payload.artifact.url.startsWith('file:')) return readFileSync(fileURLToPath(payload.artifact.url)); - const response = await fetch(payload.artifact.url); - if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); - return Buffer.from(await response.arrayBuffer()); -} - -async function materializePayloads(release, temporary) { - const nodeModules = resolve(temporary, 'node_modules'); - const roots = new Map(); - for (const payload of release.hostPayloads ?? []) { - const body = await artifactBody(payload); - const digest = createHash('sha256').update(body).digest('hex'); - if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); - const archive = resolve(temporary, `${payload.id}.tgz`); - const packageRoot = resolve(nodeModules, ...safePackagePath(payload.packageName)); - mkdirSync(packageRoot, { recursive: true }); - writeFileSync(archive, body); - const unpacked = spawnSync('tar', ['-xzf', archive, '-C', packageRoot, '--strip-components=1'], { encoding: 'utf8' }); - if (unpacked.status !== 0) throw new Error(`Unable to unpack ${payload.id}: ${redact(unpacked.stderr)}`); - roots.set(payload.packageName, packageRoot); - } - return { nodeModules, roots }; -} - -function parseReport(stdout, definition) { - let report; - try { report = JSON.parse(stdout.trim()); } - catch { throw new Error(`${definition.artifactId} did not emit one JSON verifier result.`); } - if (report?.schemaVersion !== 'treeseed.guarantee-verifier-result/v1' || !Array.isArray(report.checks)) { - throw new Error(`${definition.artifactId} emitted an unsupported verifier result.`); - } - return report; -} - -function verifierCheck(report, caseId) { - const exact = report?.checks?.find((candidate) => candidate.id === caseId); - if (exact) return exact; - const scoped = report?.checks?.filter((candidate) => candidate.id.endsWith(`:${caseId}`)) ?? []; - return scoped.length === 1 ? scoped[0] : undefined; -} - -function verifierArgs({ adminPackageRoot, apiOrigin, mailpitOrigin, adminOrigin, runId, evidenceRoot } = {}) { - const args = [ - '--api-origin', apiOrigin ?? option('api-origin', 'http://api:3000'), - '--mailpit-origin', mailpitOrigin ?? option('mailpit-origin', 'http://mailpit:8025'), - '--admin-origin', adminOrigin ?? option('admin-origin', 'https://admin.treeseed.localhost'), - ]; - if (runId) args.push('--run-id', runId); - if (evidenceRoot) args.push('--evidence-root', evidenceRoot); - for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); - if (adminPackageRoot) args.push('--admin-package-root', adminPackageRoot); - args.push('--device-profile', option('device', 'desktop_chromium')); - return args; -} - -async function executeLocal(definition, packageRoot, roots, correlatedRunId, evidenceRoot) { - const entrypoint = resolve(packageRoot, definition.entrypoint); - if (!entrypoint.startsWith(`${packageRoot}/`) || !existsSync(entrypoint)) throw new Error(`Missing safe entrypoint ${definition.entrypoint}.`); - if (definition.exportName) { - const module = await import(`${pathToFileURL(entrypoint).href}?run=${randomUUID()}`); - if (typeof module[definition.exportName] !== 'function') throw new Error(`${definition.exportName} is not exported by ${definition.entrypoint}.`); - const report = await module[definition.exportName](); - return { report: parseReport(JSON.stringify(report), definition), execution: { mode: 'local-export' } }; - } - const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs({ adminPackageRoot: roots.get('@treeseed/admin'), runId: correlatedRunId, evidenceRoot })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); - const report = parseReport(redact(child.stdout), definition); - if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); - return { report, execution: { mode: 'local-process', exitCode: child.status } }; -} - -function containerMap() { - return new Map(options('container').map((entry) => { - const separator = entry.indexOf('='); - if (separator < 1) throw new Error(`Invalid --container mapping ${entry}.`); - return [entry.slice(0, separator), entry.slice(separator + 1)]; - })); -} - -function executeInContainer(definition, container, nodeModules, runId) { - if (!/^[A-Za-z0-9_.-]+$/u.test(container)) throw new Error(`Unsafe container name ${container}.`); - const target = `/app/.treeseed-guarantees/${runId}`; - const packagePath = `${target}/node_modules/${definition.ownerPackage}`; - try { - let child = spawnSync('docker', ['exec', container, 'mkdir', '-p', `${target}/node_modules`], { encoding: 'utf8' }); - if (child.status !== 0) throw new Error(redact(child.stderr)); - child = spawnSync('docker', ['cp', `${nodeModules}/.`, `${container}:${target}/node_modules`], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); - if (child.status !== 0) throw new Error(redact(child.stderr)); - child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, - ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin`, - apiOrigin: option('container-api-origin', 'http://api:3000'), - mailpitOrigin: option('container-mailpit-origin', 'http://mailpit:8025'), - adminOrigin: option('container-admin-origin', 'https://admin.treeseed.localhost'), runId })], { - encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, - }); - const report = parseReport(redact(child.stdout), definition); - if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); - return { report, execution: { mode: 'component-container', container, exitCode: child.status } }; - } finally { - spawnSync('docker', ['exec', container, 'rm', '-rf', target], { encoding: 'utf8' }); - } -} - -function markdown(report) { - const rows = report.results.map((entry) => `| ${entry.status} | ${entry.id} | ${entry.verifierRefs.join(', ')} |`).join('\n'); - return `# TreeSeed composition guarantee run\n\n- Run: ${report.runId}\n- Composition: ${report.composition.release} generation ${report.composition.generation}\n- Result: ${report.ok ? 'PASS' : 'FAIL'}\n- Passed: ${report.counts.passed}\n- Failed: ${report.counts.failed}\n- Blocked: ${report.counts.blocked}\n\n| Status | Guarantee | Verifiers |\n| --- | --- | --- |\n${rows}\n`; -} - -const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); -const outputRoot = resolve(root, option('output', '.treeseed/guarantees/runs')); -const environment = option('environment', 'local'); -const runId = option('run-id', `${new Date().toISOString().replace(/[:.]/gu, '-')}-${randomUUID().slice(0, 8)}`); -const startedAt = new Date().toISOString(); -if (!/^[A-Za-z0-9_.-]+$/u.test(runId)) throw new Error('Run ID must be filesystem and container safe.'); -const release = JSON.parse(readFileSync(releasePath, 'utf8')); -const plannerArgs = [resolve(root, 'scripts/plan-composition-guarantees.mjs'), '--release', releasePath, - '--owner-package', option('owner-package', '@treeseed/admin'), '--types', option('types', 'user,team'), '--statuses', option('statuses', 'active')]; -for (const name of ['guarantee-owner-package', 'subtypes', 'gates', 'ids', 'journey-indexes']) if (option(name, '')) plannerArgs.push(`--${name}`, option(name, '')); -if (process.argv.includes('--no-dependencies')) plannerArgs.push('--no-dependencies'); -const planner = spawnSync(process.execPath, plannerArgs, - { cwd: root, encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); -const plan = JSON.parse(planner.stdout); -const finalRoot = resolve(outputRoot, runId); -if (existsSync(finalRoot)) throw new Error(`Guarantee run ${runId} already exists.`); -const stagingRoot = resolve(outputRoot, `.${runId}.partial-${randomUUID()}`); -mkdirSync(resolve(stagingRoot, 'evidence'), { recursive: true }); -writeFileSync(resolve(stagingRoot, 'plan.json'), `${JSON.stringify(plan, null, 2)}\n`); - -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-')); -try { - const executions = new Map(); - if (plan.ok) { - const { nodeModules, roots } = await materializePayloads(release, temporary); - const containers = containerMap(); - for (const verifier of plan.verifiers) { - const definition = verifier.definition; - const key = JSON.stringify([definition.kind, definition.ownerPackage, definition.artifactId, definition.entrypoint, definition.exportName]); - const executionKey = createHash('sha256').update(key).digest('hex').slice(0, 16); - if (!executions.has(key)) { - try { - if (definition.kind !== 'artifact') throw new Error(`Catalog operation execution is not configured for ${verifier.ref}.`); - const container = containers.get(definition.ownerPackage); - const executed = container - ? executeInContainer(definition, container, nodeModules, runId) - : await executeLocal(definition, roots.get(definition.ownerPackage), roots, runId, resolve(stagingRoot, 'evidence', `${executionKey}-assets`)); - executions.set(key, executed); - } catch (error) { - executions.set(key, { error: redact(error instanceof Error ? error.message : error), execution: { mode: 'failed' } }); - } - } - const executed = executions.get(key); - verifier.executionKey = executionKey; - verifier.execution = executed.execution; - verifier.error = executed.error; - verifier.report = executed.report; - if (executed.report) writeFileSync(resolve(stagingRoot, 'evidence', `${verifier.executionKey}.json`), `${JSON.stringify(executed.report, null, 2)}\n`); - } - } - const verifierByRef = new Map(plan.verifiers.map((entry) => [entry.ref, entry])); - const results = plan.results.map((entry) => { - const checks = entry.verifierRefs.map((ref) => { - const verifier = verifierByRef.get(ref), definition = verifier?.definition; - const check = verifierCheck(verifier?.report, definition?.caseId); - return { ref, caseId: definition?.caseId, evidenceCheckId: check?.id, status: check?.status ?? 'blocked', error: verifier?.error ?? check?.error }; - }); - const status = checks.some((check) => check.status === 'failed') ? 'failed' - : checks.length > 0 && checks.every((check) => check.status === 'passed') ? 'passed' : 'blocked'; - const steps = checks.map((check) => { - const verifier = verifierByRef.get(check.ref); - const evidence = verifier?.executionKey ? [`evidence/${verifier.executionKey}.json`] : []; - const diagnostics = check.error ? [{ severity: 'error', code: 'guarantee.verifier_failed', message: check.error }] : []; - return { id: check.ref, kind: entry.sceneVerifierRefs?.includes(check.ref) ? 'scene' : 'verifier', status: check.status, summary: check.caseId ?? check.ref, evidence, diagnostics }; - }); - return { ...entry, status, checks, steps, diagnostics: steps.flatMap((step) => step.diagnostics), evidence: [...new Set(steps.flatMap((step) => step.evidence))] }; - }); - const counts = { passed: results.filter((entry) => entry.status === 'passed').length, - failed: results.filter((entry) => entry.status === 'failed').length, skipped: 0, - blocked: results.filter((entry) => entry.status === 'blocked').length, - releaseBlockingFailures: results.filter((entry) => entry.releaseBlocking && ['failed', 'blocked'].includes(entry.status)).length }; - const report = { schemaVersion: 'treeseed.guarantee-run/v1', runId, startedAt, completedAt: new Date().toISOString(), - ok: plan.ok && counts.failed === 0 && counts.blocked === 0, environment, composition: plan.composition, - source: { platform: release.platform, deployment: release.deployment, releasePath }, catalog: plan.catalog, filter: plan.filter, - payloads: plan.payloads, counts, results, diagnostics: plan.diagnostics, verifiers: plan.verifiers.map(({ report: _report, ...entry }) => entry) }; - writeFileSync(resolve(stagingRoot, 'report.json'), `${JSON.stringify(report, null, 2)}\n`); - writeFileSync(resolve(stagingRoot, 'report.md'), markdown(report)); - mkdirSync(dirname(finalRoot), { recursive: true }); - renameSync(stagingRoot, finalRoot); - process.stdout.write(`${JSON.stringify({ ok: report.ok, runId, runRoot: finalRoot, counts }, null, 2)}\n`); - process.exitCode = report.ok ? 0 : 1; -} finally { - rmSync(temporary, { recursive: true, force: true }); - if (existsSync(stagingRoot)) rmSync(stagingRoot, { recursive: true, force: true }); -} diff --git a/scripts/synchronize-capacity-provider-manifests.mjs b/scripts/synchronize-capacity-provider-manifests.mjs deleted file mode 100644 index 0d5586d2..00000000 --- a/scripts/synchronize-capacity-provider-manifests.mjs +++ /dev/null @@ -1,68 +0,0 @@ -import { readFileSync, writeFileSync } from 'node:fs'; -import { resolve } from 'node:path'; -import { parse, stringify } from 'yaml'; -import { - CORE_CAPABILITY_DEFINITIONS, - CORE_CAPABILITY_ONTOLOGY_GENERATION, - capabilityContractDigest, - capabilityOfferDigest, - capabilityOfferSchema, -} from '@treeseed/sdk/capacity-provider'; - -const root = resolve(import.meta.dirname, '..'); -const checkOnly = process.argv.includes('--check'); -const providerPath = resolve(root, 'treeseed.capacity-provider.yaml'); -const hostPaths = [ - resolve(root, 'deployment/host-configs/development-workstation.json'), - resolve(root, 'deployment/host-configs/capacity-provider-development.json'), -]; -const templateIds = ['platform-local-managed-codex', 'platform-local-managed-ai', 'platform-market-codex', 'platform-external-codex']; -const definitions = new Map(CORE_CAPABILITY_DEFINITIONS.map((definition) => [definition.id, definition])); -const reference = (id) => { - const definition = definitions.get(id); - if (!definition) throw new Error(`Provider offer references unknown core capability ${id}.`); - return { id: definition.id, version: definition.version, digest: definition.digest }; -}; -const emit = (path, content) => { - if (checkOnly) { - if (readFileSync(path, 'utf8') !== content) throw new Error(`${path.slice(root.length + 1)} is not synchronized with the active SDK capability ontology.`); - return; - } - writeFileSync(path, content); -}; - -function synchronizeOffer(offer) { - const capabilities = offer.capabilities.map(({ id }) => reference(id)); - const conformance = offer.conformance.map((entry) => { - const capability = reference(entry.capability.id); - return { ...entry, capability, evidenceDigest: capabilityContractDigest({ capability, tier: entry.tier, suite: entry.suite }) }; - }); - const { offerDigest: _oldDigest, ...rest } = offer; - const material = { ...rest, capabilities, conformance }; - return capabilityOfferSchema.parse({ ...material, offerDigest: capabilityOfferDigest(material) }); -} - -const provider = parse(readFileSync(providerPath, 'utf8')); -provider.schemaVersion = 5; -provider.configuration.generation = 'local-battery-v5'; -provider.ontology = { - generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, - digest: capabilityContractDigest({ generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, definitions: CORE_CAPABILITY_DEFINITIONS }), -}; -for (const adapter of provider.adapters) adapter.offers = adapter.offers.map((binding) => ({ ...binding, offer: synchronizeOffer(binding.offer) })); -const canonicalProvider = stringify(provider, { lineWidth: 0 }); -emit(providerPath, canonicalProvider); -for (const templateId of templateIds) emit(resolve(root, 'templates', templateId, 'template/treeseed.capacity-provider.yaml'), canonicalProvider); - -for (const hostPath of hostPaths) { - const host = JSON.parse(readFileSync(hostPath, 'utf8')); - const embedded = structuredClone(provider); - const dedicated = host.host.role === 'capacity-provider'; - embedded.configuration.generation = dedicated ? 'managed-provider-development-v5' : 'managed-development-v5'; - embedded.identity.displayName = dedicated ? 'TreeSeed managed capacity provider' : 'TreeSeed managed development provider'; - embedded.metadata.custody = 'manager-owned'; - host.components.agent.configuration.files['treeseed.capacity-provider.yaml'] = stringify(embedded, { lineWidth: 0 }); - const enrollment = host.components.agent.configuration.providerEnrollment; - if (enrollment?.offer) enrollment.offer.capabilities = [...new Set(embedded.adapters.flatMap((adapter) => adapter.offers.flatMap((binding) => binding.offer.capabilities.map(({ id }) => id))))]; - emit(hostPath, `${JSON.stringify(host, null, 2)}\n`); -} diff --git a/scripts/test-composition-guarantee-plan.mjs b/scripts/test-composition-guarantee-plan.mjs deleted file mode 100644 index 343974a7..00000000 --- a/scripts/test-composition-guarantee-plan.mjs +++ /dev/null @@ -1,73 +0,0 @@ -import assert from 'node:assert/strict'; -import { createHash } from 'node:crypto'; -import { execFileSync, spawnSync } from 'node:child_process'; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-test-')); - -function fixture(name, withCatalog) { - const source = resolve(temporary, `${name}-source/package`); - mkdirSync(source, { recursive: true }); - if (withCatalog) { - mkdirSync(resolve(source, 'dist/standards'), { recursive: true }); - writeFileSync(resolve(source, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ - schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, - guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { - schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', - ownerPackage: '@treeseed/admin', type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, - scene: { required: true, manifest: './example.scene.yaml', executionKey: 'admin.example.scene' }, - api: { required: true, verifierRefs: ['api.example'] }, - } }], - verifierRegistries: [{ sourcePath: 'guarantees/verifiers/legacy.verifiers.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', - verifiers: { 'api.example': { kind: 'nodeScript', ownerPackage: '@treeseed/admin', testFile: 'removed.ts' } }, - } }, { sourcePath: 'guarantees/verifiers/composition.verifiers.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', - verifiers: { - 'api.example': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'example' }, - 'admin.example.scene': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'scene' }, - }, - } }], - })); - } - const archive = resolve(temporary, `${name}.tgz`); - execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, `${name}-source`), 'package']); - const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); - const release = resolve(temporary, `${name}.json`); - writeFileSync(release, JSON.stringify({ - schemaVersion: 'treeseed.integration-release/v1', release: name, generation: 1, track: 'development', - hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }], - })); - return release; -} - -function run(release, args = []) { - const result = spawnSync(process.execPath, ['scripts/plan-composition-guarantees.mjs', '--release', release, ...args], { cwd: root, encoding: 'utf8' }); - return { ...result, report: JSON.parse(result.stdout) }; -} - -try { - const accepted = run(fixture('accepted', true)); - assert.equal(accepted.status, 0); - assert.equal(accepted.report.ok, true); - assert.deepEqual(accepted.report.counts, { selected: 1, withDependencies: 1, errors: 0 }); - assert.equal(accepted.report.verifiers.length, 2); - assert.equal(accepted.report.verifiers[0].registrySource, 'guarantees/verifiers/composition.verifiers.yaml'); - assert.equal(accepted.report.verifiers[0].definition.kind, 'artifact'); - const focused = run(fixture('focused', true), ['--ids', 'guarantee.user.auth.example.001', '--no-dependencies']); - assert.equal(focused.status, 0); - assert.equal(focused.report.filter.includeDependencies, false); - assert.deepEqual(focused.report.filter.ids, ['guarantee.user.auth.example.001']); - - const missing = run(fixture('missing', false)); - assert.equal(missing.status, 1); - assert.equal(missing.report.ok, false); - assert.equal(missing.report.diagnostics[0].code, 'guarantee.catalog_missing_from_artifact'); - process.stdout.write(`${JSON.stringify({ ok: true, cases: 3 })}\n`); -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/test-composition-guarantee-run.mjs b/scripts/test-composition-guarantee-run.mjs deleted file mode 100644 index 0525994d..00000000 --- a/scripts/test-composition-guarantee-run.mjs +++ /dev/null @@ -1,52 +0,0 @@ -import assert from 'node:assert/strict'; -import { createHash } from 'node:crypto'; -import { execFileSync, spawnSync } from 'node:child_process'; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-test-')); - -try { - const packageRoot = resolve(temporary, 'source/package'); - mkdirSync(resolve(packageRoot, 'dist/standards'), { recursive: true }); - writeFileSync(resolve(packageRoot, 'dist/verifier.js'), `#!/usr/bin/env node\nconst fs=require('node:fs'); const value=name=>{const index=process.argv.indexOf('--'+name); return process.argv[index+1]}; const evidenceRoot=value('evidence-root'); fs.mkdirSync(evidenceRoot,{recursive:true}); fs.writeFileSync(evidenceRoot+'/marker.json',JSON.stringify({runId:value('run-id')})); process.stdout.write(JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',verifierId:'fixture',startedAt:new Date().toISOString(),completedAt:new Date().toISOString(),ok:true,checks:[{id:'desktop_chromium:fixture.case',status:'passed',durationMs:1}]}));\n`); - writeFileSync(resolve(packageRoot, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ - schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, - guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { - schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', ownerPackage: '@treeseed/admin', - type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, api: { required: true, verifierRefs: ['fixture.verifier'] }, - } }], - verifierRegistries: [{ sourcePath: 'guarantees/verifiers/composition.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', verifiers: { - 'fixture.verifier': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/fixture', entrypoint: 'dist/verifier.js', caseId: 'fixture.case' }, - }, - } }], - })); - const archive = resolve(temporary, 'admin.tgz'); - execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, 'source'), 'package']); - const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); - const releasePath = resolve(temporary, 'release.json'); - writeFileSync(releasePath, JSON.stringify({ schemaVersion: 'treeseed.integration-release/v1', release: 'fixture', generation: 7, track: 'development', - platform: { commit: 'a'.repeat(40) }, deployment: { commit: 'b'.repeat(40) }, - hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }] })); - const output = resolve(temporary, 'runs'); - const child = spawnSync(process.execPath, ['scripts/run-composition-guarantees.mjs', '--release', releasePath, '--output', output, '--run-id', 'fixture-run'], { cwd: root, encoding: 'utf8' }); - assert.equal(child.status, 0, child.stderr || child.stdout); - const summary = JSON.parse(child.stdout); - const report = JSON.parse(readFileSync(resolve(summary.runRoot, 'report.json'), 'utf8')); - assert.equal(report.ok, true); - assert.deepEqual(report.counts, { passed: 1, failed: 0, skipped: 0, blocked: 0, releaseBlockingFailures: 0 }); - assert.equal(report.environment, 'local'); - assert.equal(report.results[0].steps[0].status, 'passed'); - assert.equal(report.results[0].checks[0].caseId, 'fixture.case'); - assert.equal(report.results[0].checks[0].evidenceCheckId, 'desktop_chromium:fixture.case'); - const executionKey = report.verifiers[0].executionKey; - assert.deepEqual(JSON.parse(readFileSync(resolve(summary.runRoot, 'evidence', `${executionKey}-assets/marker.json`), 'utf8')), { runId: 'fixture-run' }); - assert.equal(report.payloads[0].artifact.sha256, digest); - process.stdout.write(`${JSON.stringify({ ok: true, cases: 1 })}\n`); -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/verify-development-workflow.ts b/scripts/verify-development-workflow.ts deleted file mode 100644 index f4444333..00000000 --- a/scripts/verify-development-workflow.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { mkdtempSync, rmSync } from 'node:fs'; -import { execFileSync } from 'node:child_process'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { DevelopmentSessionStore, affectedDevelopmentClosure } from '../packages/deployment/src/manager/development-sessions.ts'; -import { runCommandLine } from '../packages/cli/src/cli/runtime.ts'; - -const workspace = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-development-workflow-')); -const sessions = new DevelopmentSessionStore(resolve(temporary, 'manager'), { routedHealth: async () => true }); -let activeSessionId: string | null = null; - -async function hostInvoke(input: { handlerId: string; options: Record }) { - const payload = JSON.parse(String(input.options.payload ?? '{}')) as Record; - switch (input.handlerId) { - case 'local.dev.session.start': { - const record = sessions.start(payload.session, payload.runtimes); activeSessionId = record.session.sessionId; return record; - } - case 'local.dev.status': return payload.sessionId ? sessions.load(payload.sessionId) : { sessions: sessions.list(Boolean(payload.all)) }; - case 'local.dev.plan': { - const record = sessions.load(payload.sessionId); return { affected: affectedDevelopmentClosure(record.runtimes, payload.selected.length ? payload.selected : record.session.targets.map((target) => `${target.projectId}.${target.targetId}`)) }; - } - case 'local.dev.environment': return { environment: { TREESEED_API_BASE_URL: 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: '/etc/treeseed/cli/localhost-ca.crt' } }; - case 'local.dev.candidate.register': return sessions.registerCandidate(payload.sessionId, payload.candidate); - case 'local.dev.use': { - sessions.setMode(payload.sessionId, payload.projectId, payload.targetId, payload.mode); - if (payload.mode !== 'released' && payload.port) await sessions.attach(payload.sessionId, payload.projectId, payload.targetId, payload.port); - if (payload.mode !== 'released' && !payload.port) sessions.markReady(payload.sessionId, payload.projectId, payload.targetId); - if (payload.mode !== 'released' && payload.port && !await sessions.verifyRouted(payload.sessionId, payload.projectId, payload.targetId)) throw new Error('Routed health failed.'); - return sessions.load(payload.sessionId); - } - case 'local.dev.session.stop': return sessions.stop(payload.sessionId); - default: throw new Error(`Unsupported workflow harness command ${input.handlerId}.`); - } -} - -const output: string[] = []; -const context = { cwd: workspace, env: { ...process.env, XDG_STATE_HOME: resolve(temporary, 'state'), TREESEED_API_BASE_URL: process.env.TREESEED_API_BASE_URL ?? 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: process.env.NODE_EXTRA_CA_CERTS ?? '/etc/treeseed/cli/localhost-ca.crt' }, interactiveUi: false, hostInvoke, write: (value: string) => output.push(value) }; - -function verifyAdminAgainstLivePackages() { - try { - execFileSync('npm', ['run', 'check'], { cwd: resolve(workspace, 'packages/admin'), env: context.env, encoding: 'utf8', maxBuffer: 2_000_000 }); - } catch (error) { - const result = error as { stdout?: string; stderr?: string }; - const diagnostic = `${result.stdout ?? ''}\n${result.stderr ?? ''}`.trim().slice(-12_000); - throw new Error(`Admin check failed against the live package overlays.\n${diagnostic}`); - } -} - -try { - let exit = await runCommandLine(['dev', 'session', 'start', 'development.session.yaml', '--actor', 'development-workflow-verifier', '--lease-seconds', '900', '--json'], context); - if (exit !== 0 || !activeSessionId) throw new Error('Unable to start the development workflow session.'); - exit = await runCommandLine(['dev', 'use', 'sdk.package=live', '--target', 'ui.package=live', '--target', 'core.package=live', '--json'], context); - if (exit !== 0) throw new Error('Unable to activate the live package overlay closure.'); - exit = await runCommandLine(['dev', 'use', 'admin.web=live', '--json'], context); - if (exit !== 0) throw new Error('Unable to activate the Admin live-web target.'); - const health = await fetch('http://127.0.0.1:4322/healthz'); - if (health.status !== 200) throw new Error(`Admin live health returned ${health.status}.`); - verifyAdminAgainstLivePackages(); - const record = sessions.load(activeSessionId); - const live = record.session.targets.filter((target) => target.mode === 'live').map((target) => `${target.projectId}.${target.targetId}`).sort(); - process.stdout.write(`${JSON.stringify({ ok: true, sessionId: activeSessionId, live, adminHealth: health.status, adminCheck: 'passed', packageGenerations: record.session.targets.filter((target) => target.targetId === 'package').map((target) => ({ target: `${target.projectId}.${target.targetId}`, generation: target.generation })) }, null, 2)}\n`); -} finally { - if (activeSessionId) await runCommandLine(['dev', 'session', 'stop', '--session', activeSessionId, '--restore', '--json'], context).catch(() => 1); - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/verify-local-workset-inventory.mjs b/scripts/verify-local-workset-inventory.mjs deleted file mode 100644 index 45560d9b..00000000 --- a/scripts/verify-local-workset-inventory.mjs +++ /dev/null @@ -1,74 +0,0 @@ -import { createHash } from 'node:crypto'; -import { readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const baseUrl = process.env.TREESEED_API_BASE_URL?.trim() || 'http://127.0.0.1:3000'; -const token = process.env.TREESEED_LOCAL_OPERATOR_TOKEN?.trim(); -if (!/^http:\/\/(?:127\.0\.0\.1|localhost)(?::\d+)?$/u.test(baseUrl)) throw new Error('Local inventory verification requires a loopback API URL.'); -if (!token) throw new Error('TREESEED_LOCAL_OPERATOR_TOKEN is required; never pass it as a command argument or print it.'); - -const request = async (path) => { - const response = await fetch(`${baseUrl}${path}`, { headers: { authorization: `Bearer ${token}` } }); - const body = await response.json(); - if (!response.ok || body.ok === false) throw new Error(`Local inventory request failed at ${path} with status ${response.status}.`); - return body.payload; -}; -const text = (value) => typeof value === 'string' && value.trim() ? value.trim() : null; -const record = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : {}; -const repositoryIdentity = (value) => String(value).replace(/^https:\/\/github\.com\//u, '').replace(/\.git$/u, ''); -const expectedRepositories = [ - 'treeseed-ai/admin', 'treeseed-ai/agent', 'treeseed-ai/ai', 'treeseed-ai/api', 'treeseed-ai/cli', 'treeseed-ai/core', - 'treeseed-ai/fixtures', 'treeseed-ai/reviewer', 'treeseed-ai/sdk', 'treeseed-ai/template-engineering', - 'treeseed-ai/template-research', 'treeseed-ai/treedx', 'treeseed-ai/ui', -].sort(); -const profile = await request('/v1/teams/by-name/treeseed/profile'); -const teamId = text(record(profile.team).id); -if (!teamId) throw new Error('Local TreeSeed team profile has no id.'); -const payload = await request(`/v1/teams/${encodeURIComponent(teamId)}/project-inventory`); -const inventory = []; -const excludedExternalProjects = new Set(); -for (const project of Array.isArray(payload.projects) ? payload.projects : []) { - const metadata = record(project.metadata); - const configured = record(metadata.repository); - for (const repository of Array.isArray(project.repositories) ? project.repositories : []) { - const role = text(repository.role); - const owner = text(repository.owner); - const name = text(repository.name); - if (!['primary', 'fixture'].includes(role) || !owner || !name) continue; - if (['market', 'market-api'].includes(name)) { - excludedExternalProjects.add(`${owner}/${name}`); - continue; - } - if (name === 'platform' || name.endsWith('-content')) continue; - const policy = record(configured.repositoryPolicy); - const path = text(repository.submodulePath) || text(configured.checkoutPath); - if (!path || name === 'platform') continue; - const branch = role === 'primary' - ? text(repository.currentBranch) || text(policy.stagingBranch) || text(repository.defaultBranch) - : text(repository.currentBranch) || text(repository.defaultBranch); - if (!branch) throw new Error(`API inventory entry ${owner}/${name} is missing its observable branch.`); - inventory.push({ repository: `${owner}/${name}`, role, path, branch }); - } -} -inventory.sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right))); -const repositoryIdentities = inventory.map((entry) => repositoryIdentity(entry.repository)).sort(); -if (inventory.length !== 13 || JSON.stringify(repositoryIdentities) !== JSON.stringify(expectedRepositories)) { - throw new Error(`Local API inventory is not the canonical 13-repository Platform workset: ${repositoryIdentities.join(', ')}.`); -} -const receipt = JSON.parse(readFileSync(resolve(root, '.treeseed/worksets/platform/latest.json'), 'utf8')); -if (receipt.status !== 'verified') throw new Error('Platform workset receipt is not verified.'); -const observed = receipt.completed.map((action) => ({ repository: repositoryIdentity(action.repository), role: action.role, path: action.path, branch: action.sourceBranch })) - .sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right))); -const forbiddenObserved = observed.filter((entry) => ['treeseed-ai/market', 'treeseed-ai/market-api'].includes(entry.repository)); -if (forbiddenObserved.length > 0) throw new Error(`Platform workset contains forbidden custody: ${forbiddenObserved.map((entry) => entry.repository).join(', ')}.`); -if (JSON.stringify(inventory) !== JSON.stringify(observed)) throw new Error('Local API inventory does not equal the materialized workset receipt.'); -const digest = createHash('sha256').update(JSON.stringify(inventory)).digest('hex'); -console.log(JSON.stringify({ - ok: true, - teamId, - count: inventory.length, - inventoryDigest: `sha256:${digest}`, - receiptStatus: receipt.status, - excludedExternalProjects: [...excludedExternalProjects].sort(), -})); diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs deleted file mode 100644 index 76f4db57..00000000 --- a/scripts/verify-platform.mjs +++ /dev/null @@ -1,226 +0,0 @@ -import { execFileSync } from 'node:child_process'; -import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs'; -import { basename, resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const fail = (message) => { throw new Error(message); }; -const read = (path) => readFileSync(resolve(root, path), 'utf8'); -const requireFile = (path) => { if (!existsSync(resolve(root, path))) fail(`Platform is missing ${path}.`); }; - -const rootPackage = JSON.parse(read('package.json')); -if ('workspaces' in rootPackage) fail('Platform must not treat independent project repositories as npm workspaces.'); -if (existsSync(resolve(root, 'package-lock.json'))) fail('Platform must not create a root package lock; each project repository owns its lock independently.'); -execFileSync(process.execPath, [resolve(root, 'scripts/verify-treeseed-skill.mjs')], { cwd: root, stdio: 'inherit' }); -execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-plan.mjs')], { cwd: root, stdio: 'inherit' }); -execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-run.mjs')], { cwd: root, stdio: 'inherit' }); -if (existsSync(resolve(root, '.gitmodules'))) fail('Platform must not encode team inventory as gitlinks.'); -if (existsSync(resolve(root, 'treeseed.portfolio.json'))) fail('Platform must read live team inventory from its portable seed bundle.'); -const index = execFileSync('git', ['ls-files', '--stage'], { cwd: root, encoding: 'utf8' }); -const gitlinks = index.split('\n').filter((line) => line.startsWith('160000 ')); -if (gitlinks.length) fail(`Platform contains forbidden gitlinks: ${gitlinks.join(', ')}`); -const trackedFiles = execFileSync('git', ['ls-files', '-z'], { cwd: root, encoding: 'utf8' }).split('\0').filter(Boolean); -const homePathFiles = trackedFiles.filter((path) => { - const absolute = resolve(root, path); - return existsSync(absolute) && statSync(absolute).isFile() && /\/(?:home|Users)\//u.test(read(path)); -}); -if (homePathFiles.length) fail(`Platform must not contain host-specific home-directory paths: ${homePathFiles.join(', ')}`); - -for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml', 'deployment/host-configs/development-workstation.json', 'deployment/host-configs/capacity-provider-development.json', 'deployment/integration-releases/stable.json', 'deployment/integration-releases/development.json', 'deployment/treeai-component-inputs.json', 'docs/multi-host-deployment.md']) requireFile(path); -for (const path of ['seeds/agents.yaml', 'seeds/platform.yaml', 'treeseed.agents-capacity-provider.yaml', 'treeseed.platform-capacity-provider.yaml']) { - if (existsSync(resolve(root, path))) fail(`Platform retains obsolete split-provider input ${path}.`); -} - -const seed = read('seeds/treeseed.yaml'); -for (const required of ['schemaVersion: treeseed.seed-bundle/v3', 'adrian.webb@knowledge.coop', 'service-principal:treeseed/automation', 'interactiveLogin: false', 'capacity-provider:treeseed/local', 'requiredLanePurposes: [communication, platform, workday]']) { - if (!seed.includes(required)) fail(`Canonical seed is missing required contract text: ${required}`); -} -for (const forbidden of ['agentLabServicePrincipals', 'providerClass:', 'adrian.webb@treeseed.dev', 'registrationKey', 'privateKey']) { - if (seed.includes(forbidden)) fail(`Canonical seed retains forbidden legacy or secret field: ${forbidden}`); -} -const projects = [...seed.matchAll(/key: ['"]?(project:treeseed\/[a-z0-9-]+)/gu)].map((match) => match[1]); -if (new Set(projects).size !== 16) fail(`Canonical seed must contain 16 unique primary projects; found ${new Set(projects).size}.`); -for (const project of ['project:treeseed/market', 'project:treeseed/market-api']) if (!projects.includes(project)) fail(`Canonical seed is missing ${project}.`); -if (!projects.includes('project:treeseed/deployment')) fail('Canonical seed is missing the shared Deployment project.'); -const repositories = [...seed.matchAll(/key: ['"]?(repository:treeseed\/[a-z0-9-]+)/gu)].map((match) => match[1]); -if (new Set(repositories).size !== 33) fail(`Canonical seed must contain 16 primary repositories, 16 libraries, and one fixture repository; found ${new Set(repositories).size}.`); -if (!/repository:treeseed\/deployment[^\n]+checkoutPath: packages\/deployment[^\n]+repositoryPolicy:/u.test(seed)) fail('Deployment must be a first-party checkout without a gitlink.'); -if (/repository:treeseed\/deployment[^\n]+submodulePath:/u.test(seed)) fail('Deployment must not be declared as a submodule.'); -if (/role: content(?:[,}\s]|$)/u.test(seed)) fail('Legacy content repository roles must not remain in the v3 seed.'); -if ((seed.match(/role: library/gmu) ?? []).length !== 16 || (seed.match(/libraryRepository:/gmu) ?? []).length !== 16) fail('Every seeded project must declare exactly one repository-backed library.'); -if (!/digest: sha256:[a-f0-9]{64}/u.test(seed)) fail('Canonical seed is not digest-bound.'); - -const provider = read('treeseed.capacity-provider.yaml'); -for (const required of ['schemaVersion: 5', 'ontology:', 'offers:', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: microvm', 'runtime: kata-runtime-rs-qemu', 'defaultDenyNetwork: true']) { - if (!provider.includes(required)) fail(`Unified provider manifest is missing ${required}.`); -} -if (provider.includes('schemaVersion: 4') || provider.includes('isolation: process') || provider.includes('isolation: worker')) fail('Unified provider manifest must not retain v4 or non-microVM execution adapters.'); -for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCredentialRef:']) if (provider.includes(forbidden)) fail(`Unified provider manifest retains ${forbidden}.`); - -const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); -if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || host.runtime?.dataRoot !== '/var/lib/treeseed/development/.treeseed/data') fail('Development workstation must use the current integrated managed-host contract and standard TreeSeed development data root.'); -if (host.updates?.defaultTrack !== 'development' || host.updates?.stable?.maintenanceWindow?.weekday !== 'sunday' || host.updates?.stable?.maintenanceWindow?.localTime !== '03:00') fail('Development workstation must poll development while preserving the stable weekly activation policy.'); -for (const componentId of ['api', 'admin', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); -for (const componentId of ['ai-inference', 'ai-training', 'ai-lab']) if (host.components?.[componentId]?.enabled !== false) fail(`Default workstation must leave ${componentId} disabled.`); -const aliases = [host.network?.manager?.aliases ?? [], ...Object.values(host.components ?? {}).flatMap((component) => Object.values(component.aliases ?? {}))].flat(); -if (aliases.length !== new Set(aliases).size || aliases.some((alias) => !/^[a-z0-9.-]+\.localhost$/u.test(alias))) fail('Local aliases must be unique and remain in the .localhost namespace.'); -const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => Object.keys(component.aliases ?? {})); -if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+$/u.test(key))) fail('Alias overrides must use full component.service.endpoint identities.'); -if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); -if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); -if (host.security?.providerVolume?.backingPath !== '/var/lib/treeseed/encrypted/provider-data.luks' || host.security?.providerVolume?.mountPath !== '/var/lib/treeseed/agent') fail('Development workstation provider storage must use standard TreeSeed paths.'); -if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); -if (host.generation !== 21) fail('Development workstation must use configuration generation 21.'); -if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); -if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); -if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); -if (host.components?.api?.configuration?.environment?.TREESEED_SITE_URL !== 'https://admin.treeseed.localhost' - || host.components?.api?.configuration?.environment?.TREESEED_API_AUTH_APPROVAL_BASE_URL !== 'https://admin.treeseed.localhost' - || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_HOST !== 'mailpit' - || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_PORT !== '1025') fail('A fresh workstation must route account confirmation through the managed Lab Mailpit service.'); -const brokerSecret = 'treedx-credential-broker-assertion'; -if (host.components?.api?.configuration?.secretEnvironment?.TREESEED_TREEDX_CREDENTIAL_BROKER_ASSERTION !== brokerSecret - || host.components?.treedx?.configuration?.secretEnvironment?.TREEDX_REMOTE_CREDENTIAL_BROKER_ASSERTION !== brokerSecret - || !host.secrets?.[brokerSecret]) fail('API and TreeDX must share one manager-custodied credential-broker assertion.'); -if (host.components?.api?.configuration?.secretEnvironment?.TREESEED_GITHUB_TOKEN !== 'github-repository-token' - || host.secrets?.['github-repository-token']?.reference !== '/etc/treeseed/credentials/github-repository-token') fail('Library reconciliation requires a manager-custodied GitHub repository token outside the development data root.'); -if (host.components?.treedx?.configuration?.environment?.TREEDX_REMOTE_CREDENTIAL_BROKER_SERVICE_ID !== 'node_local' - || host.components?.treedx?.configuration?.environment?.TREEDX_GIT_EXTERNAL_TRANSPORT_ENABLED !== 'true' - || host.components?.treedx?.configuration?.environment?.TREEDX_GIT_ALLOWED_HOSTS !== 'github.com' - || host.components?.treedx?.configuration?.environment?.TREEDX_BOOTSTRAP_TRUST_ACTOR_ID !== 'treeseed-api' - || host.components?.treedx?.configuration?.environment?.TREEDX_BOOTSTRAP_TRUST_TENANT_ID !== 'treeseed-control-plane') fail('TreeDX must declare its broker identity, bounded Git hosts, and API delegation trust identity.'); -const treeDxIssuer = 'https://api.treeseed.localhost/treedx'; -const treeDxAudience = 'treedx'; -if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_ISSUER !== treeDxIssuer - || host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_AUDIENCE !== treeDxAudience - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ISSUER !== treeDxIssuer - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_AUDIENCE !== treeDxAudience - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ALLOWED_ALGS !== 'RS256') fail('API and TreeDX must share the generation 7 RS256 issuer, audience, and private JWKS discovery contract.'); -if (host.components?.agent?.connections?.['control-plane']?.kind !== 'local' || host.components?.treedx?.connections?.['control-plane']?.kind !== 'local') fail('Integrated Agent and TreeDX components require explicit local control-plane connections.'); -const embeddedProvider = host.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; -if (!embeddedProvider.startsWith('schemaVersion: 5\n') || !embeddedProvider.includes('\nontology:\n') || embeddedProvider.includes('schemaVersion: 4') || embeddedProvider.includes('sandboxProfileIds:') || embeddedProvider.includes('\n capabilities:\n - communication\n')) fail('Integrated Agent must receive only the synchronized capability-driven provider manifest v5.'); -if (host.components?.admin?.connections?.api?.kind !== 'local') fail('Managed Admin requires an explicit local or remote API connection.'); -if (Object.keys(host.components?.admin?.aliases ?? {}).length) fail('Managed Admin must use its component-owned canonical alias rather than a forbidden host override.'); -if (JSON.stringify(aliases.sort()) !== JSON.stringify(['api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the permitted local alias overrides.'); -const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider-development.json')); -if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); -if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); -const embeddedDedicatedProvider = providerHost.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; -if (!embeddedDedicatedProvider.startsWith('schemaVersion: 5\n') || !embeddedDedicatedProvider.includes('\nontology:\n') || embeddedDedicatedProvider.includes('schemaVersion: 4') || embeddedDedicatedProvider.includes('sandboxProfileIds:')) fail('Dedicated capacity-provider fixture must receive only the synchronized provider manifest v5.'); - -const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc9 artifact.'); -if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.53' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); -if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); -if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.30' || treeAiInputs.contracts.cli.sha256 !== 'a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); -if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); -for (const component of treeAiInputs.components) { - if (!/^https:\/\/github\.com\/treeseed-ai\/ai\/releases\/download\//u.test(component.manifest?.url) - || !/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || !/^[a-f0-9]{64}$/u.test(component.compose?.sha256 ?? '')) fail(`TreeAI ${component.componentId} is not independently digest locked.`); -} -for (const profileId of ['ai-inference', 'ai-training', 'ai-factory', 'ai-connected']) { - const profile = JSON.parse(read(`deployment/profiles/${profileId}.json`)); - if (profile.schemaVersion !== 'treeseed.platform-profile/v1' || profile.id !== profileId || profile.default !== false) fail(`TreeAI profile ${profileId} must remain explicit and opt-in.`); -} -const inferenceProfile = JSON.parse(read('deployment/profiles/ai-inference.json')); -const trainingProfile = JSON.parse(read('deployment/profiles/ai-training.json')); -const factoryProfile = JSON.parse(read('deployment/profiles/ai-factory.json')); -if (inferenceProfile.components?.['ai-inference']?.aliases?.['ai-inference.inference-api.control'] !== 'inference.ai.treeseed.localhost') fail('Inference alias must use the SDK endpoint identity.'); -if (trainingProfile.components?.['ai-training']?.aliases?.['ai-training.training-api.control'] !== 'training.ai.treeseed.localhost') fail('Training alias must use the SDK endpoint identity.'); -if (factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.open-webui.web'] !== 'chat.ai.treeseed.localhost' || factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.hermes-dashboard.web'] !== 'hermes.ai.treeseed.localhost') fail('Lab aliases must use SDK endpoint identities.'); -const labConnections = factoryProfile.components?.['ai-lab']?.connections; -if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local', componentId: 'ai-inference', serviceId: 'inference-api', endpointId: 'inference' }) || JSON.stringify(labConnections?.training) !== JSON.stringify({ kind: 'local', componentId: 'ai-training', serviceId: 'training-api', endpointId: 'control' })) fail('AI lab must declare its required local inference and training connections.'); -const requiredInputCustody = { - 'ai-inference': { - environment: { INFERENCE_DATABASE_URL: 'ai-inference-database-url', INFERENCE_POSTGRES_PASSWORD: 'ai-inference-postgres-password', AI_API_KEYS: 'ai-inference-api-keys' }, - secrets: { 'ai-inference-database-url': '/etc/treeseed/credentials/ai-inference-database-url', 'ai-inference-postgres-password': '/etc/treeseed/credentials/ai-inference-postgres-password', 'ai-inference-api-keys': '/etc/treeseed/credentials/ai-inference-api-keys', 'artifact-source-registry': '/etc/treeseed/credentials/ai-inference-artifact-source', 'artifact-destination-registry': '/etc/treeseed/credentials/ai-inference-artifact-destination' }, - }, - 'ai-training': { - environment: { TRAINING_DATABASE_URL: 'ai-training-database-url', TRAINING_POSTGRES_PASSWORD: 'ai-training-postgres-password', AI_API_KEYS: 'ai-training-api-keys' }, - secrets: { 'ai-training-database-url': '/etc/treeseed/credentials/ai-training-database-url', 'ai-training-postgres-password': '/etc/treeseed/credentials/ai-training-postgres-password', 'ai-training-api-keys': '/etc/treeseed/credentials/ai-training-api-keys', 'artifact-signing-key': '/etc/treeseed/credentials/ai-artifact-signing-key' }, - }, -}; -function verifyInputCustody(profile, componentId) { - const expected = requiredInputCustody[componentId]; - if (JSON.stringify(profile.components?.[componentId]?.configuration?.secretEnvironment) !== JSON.stringify(expected.environment)) fail(`${profile.id} does not bind the complete ${componentId} secret environment.`); - for (const [id, reference] of Object.entries(expected.secrets)) if (profile.secrets?.[id]?.provider !== 'file' || profile.secrets[id].reference !== reference) fail(`${profile.id} does not bind ${id} to its declared custody path.`); -} -verifyInputCustody(inferenceProfile, 'ai-inference'); -verifyInputCustody(trainingProfile, 'ai-training'); -verifyInputCustody(factoryProfile, 'ai-inference'); -verifyInputCustody(factoryProfile, 'ai-training'); -if (JSON.stringify(factoryProfile.components?.['ai-lab']?.configuration?.secretEnvironment) !== JSON.stringify({ AI_LAB_API_KEYS: 'ai-lab-api-keys' })) fail('AI factory does not bind the lab API credential environment.'); -const labSecretPaths = { - 'ai-lab-api-keys': '/etc/treeseed/credentials/ai-lab-api-keys', 'training-source': '/etc/treeseed/credentials/ai-lab-training-source', - 'factory-inference-key': '/etc/treeseed/credentials/ai-lab-factory-inference-key', 'factory-training-key': '/etc/treeseed/credentials/ai-lab-factory-training-key', 'hermes-api-key': '/etc/treeseed/credentials/ai-lab-hermes-api-key', - 'hermes-password-hash': '/etc/treeseed/credentials/ai-lab-hermes-password-hash', 'hermes-session-secret': '/etc/treeseed/credentials/ai-lab-hermes-session-secret', 'training-ingest-key': '/etc/treeseed/credentials/ai-lab-training-ingest-key', - 'lab-library-action-key': '/etc/treeseed/credentials/ai-lab-lab-library-action-key', 'ai-mode-ca': '/etc/treeseed/credentials/ai-mode-ca.crt', - 'ai-mode-client-cert': '/etc/treeseed/credentials/ai-mode-client.crt', 'ai-mode-client-key': '/etc/treeseed/credentials/ai-mode-client.key', -}; -for (const [id, reference] of Object.entries(labSecretPaths)) if (factoryProfile.secrets?.[id]?.provider !== 'file' || factoryProfile.secrets[id].reference !== reference) fail(`AI factory does not bind ${id} to the released lab custody path.`); -if (factoryProfile.components?.['ai-lab']?.configuration?.environment?.RUNTIME_GID !== undefined) fail('Platform must leave RUNTIME_GID under manager-derived custody.'); -const connectedProfile = JSON.parse(read('deployment/profiles/ai-connected.json')); -const treeAiNodes = JSON.parse(connectedProfile.components?.api?.configuration?.environment?.TREESEED_TREEAI_NODES ?? '{}'); -const treeAiEndpoints = treeAiNodes['local-ai']?.endpoints; -if (treeAiEndpoints?.lab !== 'http://controller:8081') fail('Connected AI must address the released lab controller service and port.'); -if ('qualification' in (treeAiEndpoints ?? {})) fail('Connected AI must not advertise the retired TreeAI host manager as a qualification endpoint.'); - -const stableIntegration = JSON.parse(read('deployment/integration-releases/stable.json')); -const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); -if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); -if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); -for (const integration of [stableIntegration, developmentIntegration]) { - if (!/^[a-f0-9]{40}$/u.test(integration.platform?.commit ?? '') || !/^[a-f0-9]{40}$/u.test(integration.deployment?.commit ?? '')) fail(`${integration.track} integration must identify exact reviewed Platform and Deployment commits.`); -} -if (developmentIntegration.generation <= stableIntegration.generation) fail('Development integration generation must advance beyond the immutable stable baseline.'); -if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'playwright-core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); -if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'ai-inference', 'ai-lab', 'ai-training', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, Lab, and TreeAI component set.'); -for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); -for (const component of developmentIntegration.components ?? []) { - if (!/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || component.files?.some(({ artifact }) => !/^[a-f0-9]{64}$/u.test(artifact?.sha256 ?? ''))) fail(`Component ${component.componentId} is not fully digest locked.`); -} - -const config = read('treeseed.site.yaml'); -const requiredConfig = [/^authority: \{ kind: customer-platform \}\s*$/mu, /^controlPlane: \{ mode: managed \}\s*$/mu, /^\s*inventory: \{ source: seed, path: seeds\/treeseed\.yaml \}\s*$/mu, /^processing: \{ mode: local, providerRef: codex-sub \}\s*$/mu]; -if (requiredConfig.some((pattern) => !pattern.test(config))) fail('Platform configuration does not use the canonical managed local inventory.'); - -const templateIds = ['platform-local-managed-codex', 'platform-local-managed-ai', 'platform-market-codex', 'platform-external-codex']; -for (const templateId of templateIds) { - const templateRoot = resolve(root, 'templates', templateId); - const manifest = JSON.parse(readFileSync(resolve(templateRoot, 'template.config.json'), 'utf8')); - if (manifest.templateVersion !== '3.0.0') fail(`${templateId} must use unified seed template version 3.0.0.`); - for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml']) { - if (!manifest.managedSurface?.coreManaged?.includes(path) || !manifest.managedSurface?.validatedOnly?.includes(path)) fail(`${templateId} does not manage and validate ${path}.`); - } - if (JSON.stringify(manifest.platform?.seeds) !== JSON.stringify(['seeds/treeseed.yaml'])) fail(`${templateId} must instantiate only the canonical seed.`); - if (readFileSync(resolve(templateRoot, 'template/seeds/treeseed.yaml'), 'utf8') !== seed) fail(`${templateId} seed has drifted from the canonical bundle.`); - if (readFileSync(resolve(templateRoot, 'template/treeseed.capacity-provider.yaml'), 'utf8') !== provider) fail(`${templateId} provider manifest has drifted from the unified battery.`); - for (const legacy of ['template/seeds/agents.yaml', 'template/seeds/platform.yaml']) if (existsSync(resolve(templateRoot, legacy))) fail(`${templateId} retains ${legacy}.`); -} - -const repositoryRoots = ['packages', 'templates', '.fixtures', 'starters', 'products', 'services'].flatMap((directory) => { - const absolute = resolve(root, directory); - if (!existsSync(absolute) || !statSync(absolute).isDirectory()) return []; - return readdirSync(absolute, { withFileTypes: true }).filter((entry) => entry.isDirectory() && existsSync(resolve(absolute, entry.name, '.git'))).map((entry) => resolve(absolute, entry.name)); -}); -const marketRoots = repositoryRoots.filter((path) => ['market', 'market-api'].includes(basename(path))); -if (marketRoots.length > 2) fail(`Platform contains duplicate Market worksets: ${marketRoots.join(', ')}`); - -const primaryProjectRoots = ['.', 'packages/deployment', 'packages/api', 'packages/treedx', 'packages/sdk', 'packages/ui', 'packages/cli', 'packages/core', 'packages/admin', 'packages/agent', 'packages/reviewer', 'packages/ai', 'templates/engineering', 'templates/research', 'services/market-api'].filter((projectRoot) => projectRoot === '.' || existsSync(resolve(root, projectRoot, '.git'))); -const branchBoundary = '`main` is the only production branch and maps only to the `production` deployment environment.'; -for (const projectRoot of primaryProjectRoots) { - const agentsPath = resolve(root, projectRoot, 'AGENTS.md'); - if (!existsSync(agentsPath) || !readFileSync(agentsPath, 'utf8').includes(branchBoundary)) fail(`${projectRoot} must enforce the canonical main/production and staging/integration boundary in AGENTS.md.`); - const workflowsRoot = resolve(root, projectRoot, '.github/workflows'); - if (!existsSync(workflowsRoot)) continue; - for (const workflow of readdirSync(workflowsRoot, { recursive: true }).filter((path) => typeof path === 'string' && /\.ya?ml$/u.test(path))) { - const source = readFileSync(resolve(workflowsRoot, workflow), 'utf8'); - if (/^\s*environment:\s*(?:development|preview|stable)\b|^\s*environment:[^\n]*github-pages|refs\/heads\/(?:development|preview)\b|\bCHANNEL=preview\b|--preview-id\b|WORKFLOW_PREVIEW/mu.test(source)) fail(`${projectRoot}/.github/workflows/${workflow} violates the canonical deployment boundary.`); - } -} - -for (const path of ['packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml', 'packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml', 'scripts/guarantees/verify-agent-capability.ts']) requireFile(path); -const agentGuaranteeDefinitions = readdirSync(resolve(root, 'packages/market-guarantee-catalog/guarantees'), { recursive: true }).filter((path) => typeof path === 'string' && path.endsWith('.guarantee.yaml')).length; - -console.log(JSON.stringify({ ok: true, inventoryAuthority: 'portable-seed-bundle', projects: 16, primaryRepositories: 16, projectLibraries: 16, fixtureRepositories: 1, owners: 2, providerModel: 'capability-marketplace-v5', lanes: ['communication', 'platform', 'workday'], gitlinks: 0, marketCheckouts: marketRoots.length, agentGuaranteeDefinitions, hostedDeployment: false })); diff --git a/scripts/verify-treeseed-skill.mjs b/scripts/verify-treeseed-skill.mjs deleted file mode 100644 index a9f8f604..00000000 --- a/scripts/verify-treeseed-skill.mjs +++ /dev/null @@ -1,37 +0,0 @@ -import { existsSync, readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const skillRoot = resolve(root, 'skills/treeseed'); -const skill = readFileSync(resolve(skillRoot, 'SKILL.md'), 'utf8'); -const receipt = JSON.parse(readFileSync(resolve(skillRoot, 'catalog-receipt.json'), 'utf8')); -const composition = JSON.parse(readFileSync(resolve(root, 'docs/evidence/unified-capacity-battery-composition.json'), 'utf8')); -const fail = (message) => { throw new Error(message); }; -const categories = ['knowledge', 'governance', 'projects', 'execution', 'mcp']; - -if (!/^name: treeseed$/mu.test(skill)) fail('TreeSeed Skill name is not canonical.'); -if (!/^ protocol: "2026-07-28"$/mu.test(skill)) fail('TreeSeed Skill does not declare the accepted MCP protocol.'); -if (receipt.schemaVersion !== 'treeseed.skill-catalog-receipt/v1' || receipt.protocolVersion !== '2026-07-28') fail('TreeSeed Skill receipt version is unsupported.'); -if (JSON.stringify(receipt.categories) !== JSON.stringify(categories)) fail('TreeSeed Skill categories drifted from the accepted set.'); -if (!/^sha256:[0-9a-f]{64}$/u.test(receipt.sdk.operationCatalogDigest) || !/^sha256:[0-9a-f]{64}$/u.test(receipt.sdk.mcpInputDigest) || !/^sha256:[0-9a-f]{64}$/u.test(receipt.api.mcpCatalogDigest)) fail('TreeSeed Skill receipt contains an invalid catalog digest.'); -if (composition.schemaVersion !== 'treeseed.platform-composition-evidence/v1' || composition.status !== 'staging_accepted') fail('TreeSeed capacity-battery composition evidence is not accepted.'); -const sdk = composition.members?.sdk; -const api = composition.members?.api; -if (receipt.sdk.version !== sdk?.version || receipt.sdk.stagingCommit !== sdk?.sourceCommit - || receipt.sdk.operationCatalogDigest !== `sha256:${sdk?.operationCatalogSha256}` - || receipt.sdk.mcpInputDigest !== `sha256:${sdk?.mcpInputSha256}`) fail('TreeSeed Skill SDK receipt drifted from the accepted composition.'); -if (receipt.api.stagingCommit !== api?.sourceCommit || receipt.api.openApiDigest !== `sha256:${api?.openApiSha256}` - || receipt.api.mcpCatalogDigest !== `sha256:${api?.mcpCatalogSha256}`) fail('TreeSeed Skill API receipt drifted from the accepted composition.'); -for (const field of ['tools', 'resources', 'resourceTemplates', 'prompts']) { - if (receipt.mcpSurface[field] !== api?.mcp?.[field]) fail(`TreeSeed Skill MCP ${field} receipt drifted from the accepted composition.`); -} - -for (const category of categories) { - const reference = `references/${category}.md`; - if (!skill.includes(`](${reference})`) || !existsSync(resolve(skillRoot, reference))) fail(`TreeSeed Skill is missing its ${category} reference.`); -} - -for (const forbidden of ['/v1/', 'tools/call', 'MarketClient', '--market']) if (skill.includes(forbidden)) fail(`TreeSeed Skill hard-codes forbidden transport detail: ${forbidden}`); -if (!/Discover its current MCP tools, resources, templates, prompts, schemas, and capability annotations/u.test(skill)) fail('TreeSeed Skill does not require runtime capability discovery.'); - -console.log(JSON.stringify({ ok: true, skill: 'treeseed', protocolVersion: receipt.protocolVersion, categories, sdkVersion: receipt.sdk.version, apiStaging: receipt.api.stagingCommit, mcpCatalogDigest: receipt.api.mcpCatalogDigest })); diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index fac2b439..ebcad042 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,77 +1,39 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 +version: 5 +description: Portable first-party source inventory for integrated and selective development. resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } + - { key: 'project:treeseed/platform', slug: platform, primaryRepository: 'repository:treeseed/platform' } + - { key: 'project:treeseed/deployment', slug: deployment, primaryRepository: 'repository:treeseed/deployment' } + - { key: 'project:treeseed/api', slug: api, primaryRepository: 'repository:treeseed/api' } + - { key: 'project:treeseed/treedx', slug: treedx, primaryRepository: 'repository:treeseed/treedx' } + - { key: 'project:treeseed/sdk', slug: sdk, primaryRepository: 'repository:treeseed/sdk' } + - { key: 'project:treeseed/ui', slug: ui, primaryRepository: 'repository:treeseed/ui' } + - { key: 'project:treeseed/cli', slug: cli, primaryRepository: 'repository:treeseed/cli' } + - { key: 'project:treeseed/core', slug: core, primaryRepository: 'repository:treeseed/core' } + - { key: 'project:treeseed/admin', slug: admin, primaryRepository: 'repository:treeseed/admin' } + - { key: 'project:treeseed/agent', slug: agent, primaryRepository: 'repository:treeseed/agent' } + - { key: 'project:treeseed/reviewer', slug: reviewer, primaryRepository: 'repository:treeseed/reviewer' } + - { key: 'project:treeseed/template-engineering', slug: template-engineering, primaryRepository: 'repository:treeseed/template-engineering' } + - { key: 'project:treeseed/template-research', slug: template-research, primaryRepository: 'repository:treeseed/template-research' } + - { key: 'project:treeseed/market', slug: market, primaryRepository: 'repository:treeseed/market' } + - { key: 'project:treeseed/market-api', slug: market-api, primaryRepository: 'repository:treeseed/market-api' } + - { key: 'project:treeseed/skill', slug: skill, primaryRepository: 'repository:treeseed/skill' } repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] + - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, gitUrl: 'https://github.com/treeseed-ai/treedx.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, gitUrl: 'https://github.com/treeseed-ai/sdk.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, gitUrl: 'https://github.com/treeseed-ai/ui.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, gitUrl: 'https://github.com/treeseed-ai/cli.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, gitUrl: 'https://github.com/treeseed-ai/core.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, gitUrl: 'https://github.com/treeseed-ai/admin.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, gitUrl: 'https://github.com/treeseed-ai/agent.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, gitUrl: 'https://github.com/treeseed-ai/reviewer.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-engineering.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-research.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, gitUrl: 'https://github.com/treeseed-ai/market.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/skill', project: 'project:treeseed/skill', role: primary, gitUrl: 'https://github.com/treeseed-ai/skill.git', defaultBranch: main } diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 00000000..8ae1e95c --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "skills": { + "treeseed": { + "source": "treeseed-ai/skill", + "ref": "0.1.0-rc.1", + "sourceType": "github", + "skillPath": "SKILL.md", + "computedHash": "9f7ee249da009916505cf5d4ca9ad1091080221ae5f17577f17d824a1ec710f6" + } + } +} diff --git a/skills/treeseed/SKILL.md b/skills/treeseed/SKILL.md deleted file mode 100644 index 936aa570..00000000 --- a/skills/treeseed/SKILL.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: treeseed -description: Operate a TreeSeed control plane through its current MCP capabilities for project, knowledge, governance, and execution work. Use when a task targets TreeSeed records or governed project-agent chat; do not use it as authority to run agents or mutate repositories. -metadata: - protocol: "2026-07-28" - catalog-receipt: "catalog-receipt.json" - categories: "knowledge,governance,projects,execution,mcp" ---- - -# TreeSeed - -Treat the connected TreeSeed server as the authority for identity, access, governance, scheduling, and receipts. Discover its current MCP tools, resources, templates, prompts, schemas, and capability annotations before choosing an operation. Do not rely on a remembered tool list or construct REST paths. - -## Operating boundary - -- Act as the authenticated external principal. Do not claim project-agent identity unless an explicit, authorized project-agent chat operation returns that delegation. -- Read current state before a consequential mutation. Follow returned blockers, concurrency tokens, confirmation requests, resource links, and next actions. -- Use server-provided structured input and output schemas. Never place credentials, session material, private keys, or bearer tokens in tool arguments or model-visible content. -- Treat `input_required` as a signed, exact-argument confirmation checkpoint. Ask the human when required; never alter, reuse, or synthesize confirmation state. -- Follow durable `treeseed://` resource links for asynchronous work. Use progress, cancellation, completion, and subscriptions when advertised instead of polling invented endpoints. -- Do not invoke or emulate `save`, `stage`, or `release` until the server advertises their accepted governed operations. -- For repository-backed project knowledge, use the `trsd library` workflow in `references/knowledge.md`; never assume an unbound virtual repository or a `src/content` library root. - -## Choose the relevant guidance - -- For questions, research, knowledge, or TreeDX projections, read [references/knowledge.md](references/knowledge.md). -- For proposals, decisions, estimates, reviews, or discussions, read [references/governance.md](references/governance.md). -- For teams, projects, repositories, or provider bindings, read [references/projects.md](references/projects.md). -- For agents, providers, capacity, plans, workdays, assignments, or explicit project-agent chat, read [references/execution.md](references/execution.md). -- For connection discovery, protocol behavior, errors, subscriptions, or confirmations, read [references/mcp.md](references/mcp.md). - -## Distribution - -Install this directory as one skill named `treeseed`, preserving `SKILL.md`, `catalog-receipt.json`, and `references/`. The receipt pins the accepted source and catalog evidence for this published copy; runtime discovery remains authoritative when a connected server advertises a newer compatible catalog. diff --git a/skills/treeseed/catalog-receipt.json b/skills/treeseed/catalog-receipt.json deleted file mode 100644 index a00bc093..00000000 --- a/skills/treeseed/catalog-receipt.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "schemaVersion": "treeseed.skill-catalog-receipt/v1", - "protocolVersion": "2026-07-28", - "categories": [ - "knowledge", - "governance", - "projects", - "execution", - "mcp" - ], - "sdk": { - "version": "0.13.0-rc.25", - "stagingCommit": "548c13ac8bf156361c0329fd4117e266bc541d41", - "operationCatalogDigest": "sha256:e1d3ba43af80ed5978b22b86e8e0c43894fd27ddb48434940bac4659e391ce0f", - "mcpInputDigest": "sha256:cf9c77d9f81234b4fd123de68a197d8e32a8555c4534aa8b51fe36e384c8367f" - }, - "api": { - "stagingCommit": "819dbcd3aa24661ceab98df4e1413853a0166548", - "mcpCatalogDigest": "sha256:556297ce4e293df6e1446d5f081eeef6bc43ec76bbc6c59795a7d0414bd27d3a", - "openApiDigest": "sha256:8679239462624d57bdc285d6727042944081ac8b6c9c8eadd96e6fb76a2df0c2" - }, - "mcpSurface": { - "tools": 123, - "resources": 5, - "resourceTemplates": 51, - "prompts": 5, - "capabilities": [ - "completion", - "progress", - "cancellation", - "input_required", - "resource_subscriptions" - ] - } -} diff --git a/skills/treeseed/references/execution.md b/skills/treeseed/references/execution.md deleted file mode 100644 index a9f98a66..00000000 --- a/skills/treeseed/references/execution.md +++ /dev/null @@ -1,10 +0,0 @@ -# Execution work - -Use execution resources to understand agents, provider connections, capacity, API-derived plans, time-based workdays, assignments, and durable operation status. External assistants remain external principals. - -- Inspect capacity and plan explanations; do not author derived capacity plans, reservations, leases, or settlements. -- Plan a workday from high-level intent. Start only the exact fresh preflight receipt returned by the API, and accept stale-plan rejection rather than silently recalculating. -- Follow assignment and workday resource links for progress, cancellation, interruption, return, and settlement. -- Invoke project-agent chat only through the explicit governed chat capability. The returned actor chain and invocation record determine whether delegation occurred. -- Never pass provider credentials, GitHub credentials, host authority, repository write credentials, or TreeDX secrets into an agent workspace. -- If the server does not advertise an operation, it is unavailable. Do not emulate it with raw REST, Git, database, or provider calls. diff --git a/skills/treeseed/references/governance.md b/skills/treeseed/references/governance.md deleted file mode 100644 index 94a1401e..00000000 --- a/skills/treeseed/references/governance.md +++ /dev/null @@ -1,9 +0,0 @@ -# Governance work - -Use the server's current semantic resources for questions, objectives, proposals, decisions, discussions, estimates, reviews, and findings. Do not infer approval from comments, labels, reactions, or an external host's state. - -- Read the proposal, its evidence, current revision, and decision state before commenting or reviewing. -- Keep plans, estimates, findings, and summaries attached to the returned governed lineage. -- Acting work requires the API's accepted decision and execution evidence. Planning or research may be admitted under a workday profile, but it does not mint acting authority. -- Treat a merge, provider receipt, or external PR as observed evidence until TreeSeed adopts it through an authoritative operation. -- For high-risk decisions, pass the server's exact confirmation request back to the accountable human without rewriting its arguments. diff --git a/skills/treeseed/references/knowledge.md b/skills/treeseed/references/knowledge.md deleted file mode 100644 index fe1199ca..00000000 --- a/skills/treeseed/references/knowledge.md +++ /dev/null @@ -1,53 +0,0 @@ -# Knowledge work - -Start by discovering the connected server's current knowledge and question resources. Prefer resource reads and search over broad mutation tools, and preserve project/team scope in every request. - -- Questions drive research; knowledge records and TreeDX projections hold the durable result. -- Fetch the current record and its revision before updating it. Preserve citations, provenance, project scope, and returned concurrency evidence. -- Use subscriptions for changing discussions or knowledge projections when advertised. -- TreeDX remains canonical for content. A control-plane projection or receipt is not permission to bypass TreeDX custody or write directly to its storage. -- If research should become governed work, hand it into the proposal/decision lifecycle described in [governance.md](governance.md). - -## Query a project library with `trsd` - -Resolve the project binding before relying on results: - -```sh -trsd library show --json -trsd library status --json -``` - -`` may be an unambiguous project slug or UUID. Status must report a bound repository and healthy search index. Treat missing bindings, unavailable indexes, moved refs, and empty error responses as failures. - -Discover and read repository-root collections: - -```sh -trsd library paths --prefix agents --ref --json -trsd library search "release policy" --path knowledge --ref --json -trsd library read agents/engineer.mdx --ref --json -trsd library query "active agents" --model agent --ref --json -trsd library context "what governs this change?" --ref --max-items 20 --max-tokens 8000 --json -``` - -Prefer the exact `resolvedRef` returned by TreeDX for subsequent calls. Libraries use top-level paths such as `agents/`, `books/`, `knowledge/`, `notes/`, and `questions/`; never prepend `src/content`. - -## Organize and save knowledge - -All changes use governed TreeDX workspaces: - -```sh -trsd library workspace create --json -trsd library workspace read --json -trsd library workspace write --input draft.yaml --json -trsd library workspace diff --json -trsd library workspace submit --version --message "Describe the knowledge change" --json -trsd library reviews list --team --json -trsd library reviews decide --input decision.yaml --json -trsd library reviews publish --input publication.yaml --json -``` - -Use `workspace abandon --version ` only for an unsubmitted draft. Mutation input belongs in files or stdin-capable clients, never in arguments when it contains document bodies or sensitive material. Publication must verify the reviewed commit at the upstream exact ref. - -## Local diagnosis - -Development state is mounted beneath the Platform workspace at `.treeseed/data`. It is visible for diagnostics only. Use TreeDX, control-plane, MCP, or `trsd` APIs for every read that informs work and every mutation; never repair repositories, refs, indexes, databases, or credentials by editing mounted files. diff --git a/skills/treeseed/references/mcp.md b/skills/treeseed/references/mcp.md deleted file mode 100644 index 87dc3a21..00000000 --- a/skills/treeseed/references/mcp.md +++ /dev/null @@ -1,10 +0,0 @@ -# MCP connection behavior - -The accepted server speaks stateless Streamable HTTP MCP `2026-07-28`. Begin with server discovery, then list the capabilities relevant to the task. Runtime discovery is authoritative over the pinned receipt when the server presents a newer compatible catalog. - -- Use advertised input/output schemas, semantic annotations, and OAuth scope challenges. -- Follow `treeseed://` resources and templates instead of inventing REST paths. Use completion for resource or prompt arguments when available. -- Use resource subscriptions/listen for durable changes and honor cancellation and progress notifications. -- An `input_required` response contains signed, expiring, single-use state bound to the principal, OAuth client, operation, and exact arguments. Never decode it into authority, replay it, or transplant it between clients. -- Treat RFC 9457 problems and TreeSeed blockers as typed outcomes. Preserve request and trace identifiers when reporting failures. -- Do not request legacy initialization, session, roots, sampling, or MCP logging behavior. Do not expose credentials in prompts, content, resources, logs, or tool results. diff --git a/skills/treeseed/references/projects.md b/skills/treeseed/references/projects.md deleted file mode 100644 index fbea962d..00000000 --- a/skills/treeseed/references/projects.md +++ /dev/null @@ -1,9 +0,0 @@ -# Project and repository work - -Resolve team and project context from visible resources rather than guessing identifiers. When names are ambiguous, fetch the candidates and ask the user to choose. - -- Read project access, current revision, repository topology, and provider status before mutation. -- Use catalogued provider and repository operations. Never construct GitHub API calls, raw control-plane URLs, commit-authority fields, or integration receipts on TreeSeed's behalf. -- Git commits remain native Git objects. Issues and pull requests are provider projections bound to governed work; they do not independently grant TreeSeed authority. -- Archive, withdraw, or supersede when the server offers those lifecycle operations. Treat deletion, credential changes, authority expansion, and production changes as confirmation-bearing work. -- Market and Market API are external projects and never Platform-custodied repositories or deployment resources. diff --git a/templates/platform-external-codex/template.config.json b/templates/platform-external-codex/template.config.json deleted file mode 100644 index 1c4b45b6..00000000 --- a/templates/platform-external-codex/template.config.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-external-codex", - "displayName": "External-control-plane Platform with Codex", - "description": "A TreeSeed Platform using an explicit Admin API endpoint and external Codex execution.", - "category": "platform", - "tags": ["platform", "external", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.0", - "variables": [ - { "name": "Control-plane URL", "token": "__CONTROL_PLANE_BASE_URL__", "deriveFrom": "controlPlaneBaseUrl", "required": true }, - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "external", "baseUrl": "__CONTROL_PLANE_BASE_URL__" }, - "processing": { "mode": "team-owned" }, - "admin": { "enabled": true }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["admin", "agentProvider"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-external-codex/template/seeds/treeseed.yaml b/templates/platform-external-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-external-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-external-codex/template/treeseed.site.yaml b/templates/platform-external-codex/template/treeseed.site.yaml deleted file mode 100644 index 2659b73c..00000000 --- a/templates/platform-external-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: external, baseUrl: __CONTROL_PLANE_BASE_URL__ } -hub: { mode: customer_hosted } -runtime: { mode: byo_attached, registration: optional } -processing: { mode: team-owned, providerRef: codex-sub } -surfaces: { web: { enabled: true }, admin: { enabled: true }, api: { enabled: false } } -services: - admin: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } diff --git a/templates/platform-local-managed-ai/template.config.json b/templates/platform-local-managed-ai/template.config.json deleted file mode 100644 index dec73a69..00000000 --- a/templates/platform-local-managed-ai/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-local-managed-ai", - "displayName": "Local managed Platform with TreeSeed AI", - "description": "A sovereign local TreeSeed control plane with the optional TreeSeed AI appliance.", - "category": "platform", - "tags": ["platform", "local", "managed", "ai"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.59", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "managed" }, - "processing": { "mode": "local" }, - "admin": { "enabled": false }, - "executionProvider": "treeseed-ai", - "aiAppliance": true, - "services": ["api", "treeseedDatabase", "operationsRunner", "treedx", "agentProvider", "aiAppliance"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-local-managed-ai/template/seeds/treeseed.yaml b/templates/platform-local-managed-ai/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-local-managed-ai/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-ai/template/treeseed.site.yaml b/templates/platform-local-managed-ai/template/treeseed.site.yaml deleted file mode 100644 index 45089450..00000000 --- a/templates/platform-local-managed-ai/template/treeseed.site.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } -development: - local: - marketConnectivity: disabled - inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-treeseed } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } - aiAppliance: { enabled: true, provider: local } -publicTreeDxFederation: {} diff --git a/templates/platform-local-managed-codex/template.config.json b/templates/platform-local-managed-codex/template.config.json deleted file mode 100644 index a77dc8bb..00000000 --- a/templates/platform-local-managed-codex/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-local-managed-codex", - "displayName": "Local managed Platform with Codex", - "description": "A sovereign local TreeSeed control plane with external Codex execution.", - "category": "platform", - "tags": ["platform", "local", "managed", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.59", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "managed" }, - "processing": { "mode": "local" }, - "admin": { "enabled": false }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["api", "treeseedDatabase", "operationsRunner", "treedx", "agentProvider"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-local-managed-codex/template/seeds/treeseed.yaml b/templates/platform-local-managed-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-local-managed-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-codex/template/treeseed.site.yaml b/templates/platform-local-managed-codex/template/treeseed.site.yaml deleted file mode 100644 index 3751753f..00000000 --- a/templates/platform-local-managed-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } -development: - local: - marketConnectivity: disabled - inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-sub } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } -publicTreeDxFederation: {} diff --git a/templates/platform-market-codex/template.config.json b/templates/platform-market-codex/template.config.json deleted file mode 100644 index beb944b0..00000000 --- a/templates/platform-market-codex/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-market-codex", - "displayName": "Market-connected Platform with Codex", - "description": "A TreeSeed Platform using the immutable Market gateway and external Codex execution.", - "category": "platform", - "tags": ["platform", "market", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.0", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "market-passthrough" }, - "processing": { "mode": "market-assigned" }, - "admin": { "enabled": true }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["admin"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-market-codex/template/seeds/treeseed.yaml b/templates/platform-market-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-market-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-market-codex/template/treeseed.site.yaml b/templates/platform-market-codex/template/treeseed.site.yaml deleted file mode 100644 index 9f347117..00000000 --- a/templates/platform-market-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,12 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: market-passthrough } -hub: { mode: treeseed_hosted } -runtime: { mode: none, registration: none } -processing: { mode: market-assigned, providerRef: codex-sub } -surfaces: { web: { enabled: true }, admin: { enabled: true }, api: { enabled: false } } -services: {} diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/treeseed.site.yaml b/treeseed.site.yaml index 3751753f..32be4f7e 100644 --- a/treeseed.site.yaml +++ b/treeseed.site.yaml @@ -1,22 +1,12 @@ +schemaVersion: treeseed.platform/v1 name: TreeSeed Platform slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } +authority: { kind: integration-workspace } development: local: - marketConnectivity: disabled inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-sub } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } -publicTreeDxFederation: {} +profiles: { path: profiles } +integrations: { development: config/integrations/development.yaml, stablePromotion: config/promotions/stable.yaml } +skill: { lock: config/skills/treeseed.lock.yaml } +runtime: { mode: none, identity: installation-input } +production: { mutation: blocked, topology: config/topologies/production.yaml } From 025830527c97acc090d957aed8d4c6ab9a98e9c3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 07:58:41 -0400 Subject: [PATCH 123/501] refactor: make Platform declarative (#285) --- .github/workflows/verify.yml | 24 +- .gitignore | 9 +- README.md | 34 +- config/hosts/capacity-provider.yaml | 7 + config/hosts/development.yaml | 8 + config/integrations/development.yaml | 14 + config/promotions/stable.yaml | 5 + config/skills/treeseed.lock.yaml | 11 + config/topologies/production.yaml | 9 + .../catalogs/sandbox-environment-roots.json | 21 - .../capacity-provider-development.json | 216 --- .../host-configs/development-workstation.json | 262 --- .../integration-releases/development.json | 256 --- deployment/integration-releases/stable.json | 18 - deployment/profiles/ai-connected.json | 16 - deployment/profiles/ai-factory.json | 63 - deployment/profiles/ai-inference.json | 26 - deployment/profiles/ai-training.json | 25 - deployment/treeai-component-inputs.json | 67 - development.acceptance.session.yaml | 21 - development.chat-context.session.yaml | 16 - ...lopment.communication-rollout.session.yaml | 21 - development.session.yaml | 29 - docs/agent-communication-readiness.md | 2 +- docs/production-readiness-migration-ledger.md | 4 +- docs/sdk-first-cutover-implementation-plan.md | 4 +- package.json | 26 - .../agent/system/guide-golden.guarantee.yaml | 68 - .../agent/system/source-golden.guarantee.yaml | 48 - ...mous-cited-research-starter.guarantee.yaml | 65 - .../service-workflows.verifiers.yaml | 70 - profiles/capacity-provider.yaml | 5 + profiles/control-plane.yaml | 6 + profiles/core.yaml | 6 + profiles/treeai.yaml | 7 + scenes/team-project-portfolio-demo.yaml | 731 -------- .../guarantees/agent-catalog/cli-runtime.ts | 33 - .../guarantees/agent-catalog/json-evidence.ts | 43 - .../agent-catalog/proof-executor.ts | 33 - .../guarantees/agent-catalog/proof-input.ts | 18 - scripts/guarantees/verify-agent-capability.ts | 119 -- scripts/plan-composition-guarantees.mjs | 175 -- scripts/run-composition-guarantees.mjs | 223 --- ...ynchronize-capacity-provider-manifests.mjs | 68 - scripts/test-composition-guarantee-plan.mjs | 73 - scripts/test-composition-guarantee-run.mjs | 52 - scripts/verify-development-workflow.ts | 66 - scripts/verify-local-workset-inventory.mjs | 74 - scripts/verify-platform.mjs | 226 --- scripts/verify-treeseed-skill.mjs | 37 - seeds/treeseed.yaml | 106 +- skills-lock.json | 12 + skills/treeseed/SKILL.md | 34 - skills/treeseed/catalog-receipt.json | 35 - skills/treeseed/references/execution.md | 10 - skills/treeseed/references/governance.md | 9 - skills/treeseed/references/knowledge.md | 53 - skills/treeseed/references/mcp.md | 10 - skills/treeseed/references/projects.md | 9 - .../template.config.json | 33 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 14 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 23 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 22 - .../template.config.json | 32 - .../scenes/team-project-portfolio-demo.yaml | 731 -------- .../template/seeds/treeseed.yaml | 77 - .../template/treeseed.capacity-provider.yaml | 1608 ----------------- .../template/treeseed.site.yaml | 12 - treeseed.capacity-provider.yaml | 1608 ----------------- treeseed.site.yaml | 24 +- 81 files changed, 184 insertions(+), 15050 deletions(-) create mode 100644 config/hosts/capacity-provider.yaml create mode 100644 config/hosts/development.yaml create mode 100644 config/integrations/development.yaml create mode 100644 config/promotions/stable.yaml create mode 100644 config/skills/treeseed.lock.yaml create mode 100644 config/topologies/production.yaml delete mode 100644 deployment/catalogs/sandbox-environment-roots.json delete mode 100644 deployment/host-configs/capacity-provider-development.json delete mode 100644 deployment/host-configs/development-workstation.json delete mode 100644 deployment/integration-releases/development.json delete mode 100644 deployment/integration-releases/stable.json delete mode 100644 deployment/profiles/ai-connected.json delete mode 100644 deployment/profiles/ai-factory.json delete mode 100644 deployment/profiles/ai-inference.json delete mode 100644 deployment/profiles/ai-training.json delete mode 100644 deployment/treeai-component-inputs.json delete mode 100644 development.acceptance.session.yaml delete mode 100644 development.chat-context.session.yaml delete mode 100644 development.communication-rollout.session.yaml delete mode 100644 development.session.yaml delete mode 100644 package.json delete mode 100644 packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml delete mode 100644 packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml create mode 100644 profiles/capacity-provider.yaml create mode 100644 profiles/control-plane.yaml create mode 100644 profiles/core.yaml create mode 100644 profiles/treeai.yaml delete mode 100644 scenes/team-project-portfolio-demo.yaml delete mode 100644 scripts/guarantees/agent-catalog/cli-runtime.ts delete mode 100644 scripts/guarantees/agent-catalog/json-evidence.ts delete mode 100644 scripts/guarantees/agent-catalog/proof-executor.ts delete mode 100644 scripts/guarantees/agent-catalog/proof-input.ts delete mode 100644 scripts/guarantees/verify-agent-capability.ts delete mode 100644 scripts/plan-composition-guarantees.mjs delete mode 100644 scripts/run-composition-guarantees.mjs delete mode 100644 scripts/synchronize-capacity-provider-manifests.mjs delete mode 100644 scripts/test-composition-guarantee-plan.mjs delete mode 100644 scripts/test-composition-guarantee-run.mjs delete mode 100644 scripts/verify-development-workflow.ts delete mode 100644 scripts/verify-local-workset-inventory.mjs delete mode 100644 scripts/verify-platform.mjs delete mode 100644 scripts/verify-treeseed-skill.mjs create mode 100644 skills-lock.json delete mode 100644 skills/treeseed/SKILL.md delete mode 100644 skills/treeseed/catalog-receipt.json delete mode 100644 skills/treeseed/references/execution.md delete mode 100644 skills/treeseed/references/governance.md delete mode 100644 skills/treeseed/references/knowledge.md delete mode 100644 skills/treeseed/references/mcp.md delete mode 100644 skills/treeseed/references/projects.md delete mode 100644 templates/platform-external-codex/template.config.json delete mode 100644 templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-external-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-external-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-external-codex/template/treeseed.site.yaml delete mode 100644 templates/platform-local-managed-ai/template.config.json delete mode 100644 templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-local-managed-ai/template/seeds/treeseed.yaml delete mode 100644 templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-local-managed-ai/template/treeseed.site.yaml delete mode 100644 templates/platform-local-managed-codex/template.config.json delete mode 100644 templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-local-managed-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-local-managed-codex/template/treeseed.site.yaml delete mode 100644 templates/platform-market-codex/template.config.json delete mode 100644 templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml delete mode 100644 templates/platform-market-codex/template/seeds/treeseed.yaml delete mode 100644 templates/platform-market-codex/template/treeseed.capacity-provider.yaml delete mode 100644 templates/platform-market-codex/template/treeseed.site.yaml delete mode 100644 treeseed.capacity-provider.yaml diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 9d67fc29..4e9766e4 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -15,13 +15,19 @@ concurrency: jobs: verify: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: 24 - - run: npm install --ignore-scripts --no-audit --no-fund --package-lock=false - - run: npm run verify + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 + with: { fetch-depth: 0 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.40 + with: { version: 0.13.0-rc.40 } + - run: trsd platform verify . --json + - run: trsd platform verify . --profile core --json + - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json + - name: Verify exact project-scoped skill lock + run: | + workspace="$(mktemp -d)" + cd "$workspace" + git init --quiet + npx --yes skills@1.5.23 add https://github.com/treeseed-ai/skill/tree/0.1.0-rc.1 --skill treeseed --agent codex --yes --copy + cmp skills-lock.json "$GITHUB_WORKSPACE/skills-lock.json" diff --git a/.gitignore b/.gitignore index a2db89e2..57655e42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,8 @@ node_modules/ -.treeseed/ dist/ +.treeseed/ /packages/ -/templates/* -!/templates/platform-*/ +/.agents/skills/ +/.claude/skills/ +/.codex/skills/ /.fixtures/ -/products/market/ -/services/market-api/ diff --git a/README.md b/README.md index 61849e37..f6182595 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,35 @@ # TreeSeed Platform -Public Apache-2.0 installer and integration workspace for customer-centric TreeSeed deployments. Platform manages Admin, an optional sovereign Admin API control plane, Core, CLI, capacity providers, TreeDX, and AI services. +TreeSeed Platform is the public, portable configuration and documentation workspace for installing, composing, developing, and releasing the TreeSeed ecosystem. It owns no application runtime or service implementation. SDK operations reconcile its declarations; `trsd` is the operator surface; the host manager owns installed services. -Market is external and immutable at `https://api.treeseed.dev`. This repository cannot provision, deploy, or check out Market or Market API. +## Start developing -The active migration is tracked in [SDK-First Standards, GitHub, and Cluster Cutover Ledger](./docs/sdk-first-cutover-implementation-plan.md). The integrated single-machine and multi-node target is defined in [Cluster Architecture and Cutover](./docs/cluster-architecture-cutover.md), cross-project compatibility in [Standards-Based Independent Development](./docs/standards-dev.md), and provider-neutral GitHub Issues and pull-request synchronization in [GitHub Issues and Pull Request Integration](./docs/github-work-integration.md). +Install a released CLI, clone this repository, and plan the desired source workset before any local API exists: -## Workspace +```text +trsd platform verify . --json +trsd platform workset --profile core --plan --json +trsd platform workset --profile core --apply --yes --json +``` -`trsd platform workset --plan --json` reads the authenticated live team project inventory, observes exact repository refs, and previews assignment-owned custody. `trsd platform workset --apply --yes --json` materializes that disposable custody under `packages/`, `templates/`, and `.fixtures/`. The Platform Git repository contains no portfolio manifest or project gitlinks. Paired content repositories are logical TreeDX/R2 bindings and are never software workset checkouts. +Primary source repositories are materialized beneath `packages/`. Platform remains at the workspace root, knowledge libraries are never software checkouts, and `.treeseed/worksets` contains ignored exact-ref receipts. Existing checkouts are never reset, deleted, or overwritten. + +Install the governed TreeSeed skill at the exact release recorded in `config/skills/treeseed.lock.yaml`. Platform tracks the project lock but ignores installed skill files; skill updates are explicit lock-update pull requests. + +Profiles are composable: + +```text +trsd platform workset --profile control-plane --apply --yes --json +trsd platform workset --profile capacity-provider --apply --yes --json +trsd platform workset --profile control-plane --profile treeai --apply --yes --json +``` + +`core` contains every first-party source project. Runtime selection is independent: any target may remain released while selected targets run live or as candidates. + +## Installation and production + +One generic Debian bootstrap installs only the manager foundation. `trsd host initialize --profile ` selects the role after installation. A capacity provider needs only the control-plane URL and a prompted team registration code; approval binds its generated local identity and replaces the code with short-lived sessions. + +Production topology is declared under `config/topologies/` and remains fail-closed. Cloudflare hosts Admin, Railway hosts the control plane, and bare-metal providers run Agent. Market and Market API participate in development worksets but retain independent hosted-deployment authority. + +Current delivery work and evidence are tracked in [Platform issue #280](https://github.com/treeseed-ai/platform/issues/280). GitHub Issues are status authority and Actions are verification authority. diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml new file mode 100644 index 00000000..652b46c6 --- /dev/null +++ b/config/hosts/capacity-provider.yaml @@ -0,0 +1,7 @@ +schemaVersion: treeseed.platform-host-template/v1 +id: capacity-provider +profiles: [capacity-provider] +integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +inputs: + - { name: controlPlaneUrl, required: true, sensitive: false } + - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml new file mode 100644 index 00000000..d9b6a15e --- /dev/null +++ b/config/hosts/development.yaml @@ -0,0 +1,8 @@ +schemaVersion: treeseed.platform-host-template/v1 +id: development +profiles: [core] +integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +inputs: + - { name: hostIdentity, required: false, sensitive: false } + - { name: initialAdministrator, required: false, sensitive: false } + - { name: recoveryBundle, required: true, sensitive: true } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml new file mode 100644 index 00000000..d143b53e --- /dev/null +++ b/config/integrations/development.yaml @@ -0,0 +1,14 @@ +schemaVersion: treeseed.platform-integration-lock/v1 +release: development-141 +components: + - { id: deployment, version: 0.1.0-rc.179, commit: 7e8e58a6e499aef2a35c9dd036db36694fcb48a4, digest: 'sha256:553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7', artifact: 'https://github.com/treeseed-ai/deployment/releases/tag/0.1.0-rc.179' } + - { id: sdk, version: 0.13.0-rc.63, commit: f3e615c88224069d15b44b9171da20539ba173e3, digest: 'sha256:3e756477fa988b5e82f912e2facd14c9183a919e751ffb0b229ca1af3a126b78', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.63' } + - { id: cli, version: 0.13.0-rc.40, commit: 7c12c3320c44239f89105d53d75725186e08abec, digest: 'sha256:31cdad9c065591d85aae13c71dcde9a3d7081f950f7931b5cfb07ea2ece008ff', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.40' } + - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } + - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } + - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } + - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } + - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } + - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } + - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } +digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' diff --git a/config/promotions/stable.yaml b/config/promotions/stable.yaml new file mode 100644 index 00000000..df0dcdec --- /dev/null +++ b/config/promotions/stable.yaml @@ -0,0 +1,5 @@ +schemaVersion: treeseed.platform-promotion/v1 +id: stable +state: blocked +candidate: development +blockers: [clean-host-acceptance, universal-installer-acceptance, complete-uninstall-acceptance, cloudflare-railway-readback, three-provider-canary-and-rollout, rollback-acceptance] diff --git a/config/skills/treeseed.lock.yaml b/config/skills/treeseed.lock.yaml new file mode 100644 index 00000000..11cbaebf --- /dev/null +++ b/config/skills/treeseed.lock.yaml @@ -0,0 +1,11 @@ +schemaVersion: treeseed.skill-lock/v1 +id: treeseed +source: https://github.com/treeseed-ai/skill +release: 0.1.0-rc.1 +sourceCommit: 9b17b2f35570f6fce998891e901e2e8f4b527ac3 +skillsCliVersion: 1.5.23 +computedHash: 9f7ee249da009916505cf5d4ca9ad1091080221ae5f17577f17d824a1ec710f6 +installedPath: .agents/skills/treeseed +install: { command: 'npx skills@1.5.23 add https://github.com/treeseed-ai/skill/tree/0.1.0-rc.1 --skill treeseed --agent codex --yes' } +update: { command: 'npx skills@1.5.23 update treeseed --project --yes' } +state: accepted-release-candidate diff --git a/config/topologies/production.yaml b/config/topologies/production.yaml new file mode 100644 index 00000000..d474c69c --- /dev/null +++ b/config/topologies/production.yaml @@ -0,0 +1,9 @@ +schemaVersion: treeseed.platform-topology/v1 +id: production +mutation: blocked +providers: + admin: { kind: cloudflare, resourceIds: installation-input } + controlPlane: { kind: railway, resourceIds: installation-input } + capacity: { kind: bare-metal, count: installation-input } +requirements: [reviewed-plan, authoritative-readback, drift-noop, rollback, environment-approval] +boundaries: { marketHostedDeployment: external, marketApiHostedDeployment: external } diff --git a/deployment/catalogs/sandbox-environment-roots.json b/deployment/catalogs/sandbox-environment-roots.json deleted file mode 100644 index 29ffc2b5..00000000 --- a/deployment/catalogs/sandbox-environment-roots.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "schemaVersion": "treeseed.sandbox-environment-roots/v1", - "generation": 1, - "distribution": "ubuntu", - "release": "24.04", - "supportChannel": "lts", - "roots": [ - { - "id": "ubuntu-lts-amd64", - "architecture": "amd64", - "reference": "docker.io/library/ubuntu:24.04", - "digest": "sha256:1e0a86e57d247923571b75e0aaf48a1449cf8c543d51fb3e07a4a7d7bfa79316" - }, - { - "id": "ubuntu-lts-arm64", - "architecture": "arm64", - "reference": "docker.io/library/ubuntu:24.04", - "digest": "sha256:95fa486768020359141f1318720f43e7982ef926c792891d984aef9aaf05e7ea" - } - ] -} diff --git a/deployment/host-configs/capacity-provider-development.json b/deployment/host-configs/capacity-provider-development.json deleted file mode 100644 index d9f080eb..00000000 --- a/deployment/host-configs/capacity-provider-development.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "schemaVersion": "treeseed.host/v1", - "configurationId": "capacity-provider-development", - "generation": 4, - "host": { - "id": "provider-development-01", - "role": "capacity-provider", - "architecture": "amd64" - }, - "runtime": { - "management": "managed", - "environment": "production" - }, - "updates": { - "defaultTrack": "development", - "stable": { - "metadataPollSeconds": 86400, - "maintenanceWindow": { - "weekday": "sunday", - "localTime": "03:00", - "jitterMinutes": 20 - } - }, - "development": { - "pollSeconds": 60 - } - }, - "components": { - "agent": { - "enabled": true, - "track": "development", - "profile": "capacity-provider", - "aliases": {}, - "resources": { - "cpuCores": 8, - "memoryBytes": 17179869184, - "gpuDevices": [] - }, - "connections": { - "control-plane": { - "kind": "remote", - "url": "https://api.treeseed.example", - "audience": "https://api.treeseed.example", - "tls": { - "trust": "system", - "serverName": "api.treeseed.example" - }, - "authentication": { - "mode": "bearer", - "secretRef": "provider-registration" - }, - "healthGate": { - "protocol": "https", - "path": "/v1/health", - "timeoutSeconds": 30 - } - } - }, - "configuration": { - "environment": { - "TREESEED_PROVIDER_MODE": "development" - }, - "providerEnrollment": { - "connectionId": "primary", - "teamId": "team:treeseed", - "offer": { - "maxConcurrentRunners": 4, - "capabilities": [ - "treeseed.coordination.conversation", - "treeseed.coordination.question-answering", - "treeseed.coordination.planning", - "treeseed.coordination.estimation", - "treeseed.coordination.review", - "treeseed.coordination.reporting", - "treeseed.coordination.human-task-routing", - "treeseed.coordination.decision-support", - "treeseed.research.web", - "treeseed.research.literature", - "treeseed.research.market", - "treeseed.research.repository", - "treeseed.research.dataset-discovery", - "treeseed.research.retrieval", - "treeseed.research.extraction", - "treeseed.research.verification", - "treeseed.research.citation", - "treeseed.research.synthesis", - "treeseed.research.experimentation", - "treeseed.engineering.architecture", - "treeseed.engineering.repository-analysis", - "treeseed.engineering.review", - "treeseed.engineering.code-change", - "treeseed.engineering.refactoring", - "treeseed.engineering.dependency-update", - "treeseed.engineering.build", - "treeseed.engineering.unit-testing", - "treeseed.engineering.integration-testing", - "treeseed.engineering.end-to-end-testing", - "treeseed.engineering.debugging", - "treeseed.engineering.performance-analysis", - "treeseed.engineering.accessibility", - "treeseed.engineering.infrastructure", - "treeseed.data.source-connection", - "treeseed.data.extraction", - "treeseed.data.ingestion", - "treeseed.data.synchronization", - "treeseed.data.schema-inference", - "treeseed.data.schema-mapping", - "treeseed.data.normalization", - "treeseed.data.transformation", - "treeseed.data.enrichment", - "treeseed.data.entity-resolution", - "treeseed.data.validation", - "treeseed.data.quality-analysis", - "treeseed.data.lineage", - "treeseed.data.statistical-analysis", - "treeseed.data.visualization", - "treeseed.data.export", - "treeseed.publishing.drafting", - "treeseed.publishing.editing", - "treeseed.publishing.translation", - "treeseed.publishing.structured-content", - "treeseed.publishing.documentation", - "treeseed.publishing.cms", - "treeseed.publishing.repository", - "treeseed.publishing.package-artifact", - "treeseed.publishing.site-build", - "treeseed.publishing.site-deployment", - "treeseed.publishing.syndication", - "treeseed.publishing.release-notes" - ] - } - }, - "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-provider-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed capacity provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" - } - } - } - }, - "network": { - "manager": { - "binding": "127.0.0.1:4790", - "aliases": [], - "sans": [ - "127.0.0.1" - ], - "trustedLanCidrs": [] - } - }, - "fleet": { - "rolloutGroup": "capacity-providers-development", - "receiptReporting": { - "enabled": false, - "intervalSeconds": 300 - } - }, - "secrets": { - "provider-registration": { - "provider": "file", - "reference": "/etc/treeseed/credentials/provider-registration" - } - }, - "security": { - "sandbox": { - "required": true, - "runtime": "kata-runtime-rs-qemu", - "brokerSocket": "/run/treeseed/sandbox/broker.sock", - "modelGateway": { - "provider": "openai", - "upstreamBaseUrl": "https://api.openai.com", - "allowedModels": [ - "gpt-5.4" - ] - }, - "profiles": [ - { - "id": "read", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "unit", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "integration", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "platform", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "connected", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - } - ] - }, - "providerVolume": { - "encryption": "luks2", - "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", - "mountPath": "/var/lib/treeseed/agent", - "sizeBytes": 17179869184, - "unlock": "tpm2", - "recoveryRequired": true - }, - "applicationEncryption": { - "provider": "systemd-credential", - "activeKeyVersion": 1, - "diagnosticsKeyVersion": 1 - } - } -} diff --git a/deployment/host-configs/development-workstation.json b/deployment/host-configs/development-workstation.json deleted file mode 100644 index cc49bbbe..00000000 --- a/deployment/host-configs/development-workstation.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "schemaVersion": "treeseed.host/v1", - "configurationId": "development-workstation", - "generation": 21, - "host": { - "id": "adrian-workstation", - "role": "integrated", - "architecture": "amd64" - }, - "runtime": { - "management": "managed", - "environment": "development", - "dataRoot": "/var/lib/treeseed/development/.treeseed/data" - }, - "updates": { - "defaultTrack": "development", - "stable": { - "metadataPollSeconds": 86400, - "maintenanceWindow": { - "weekday": "sunday", - "localTime": "03:00", - "jitterMinutes": 20 - } - }, - "development": { - "pollSeconds": 60 - } - }, - "components": { - "api": { - "enabled": true, - "track": "development", - "aliases": { - "api.api.http": "api.treeseed.localhost" - }, - "configuration": { - "environment": { - "NODE_ENV": "production", - "TREESEED_ENVIRONMENT": "local", - "TREESEED_LOCAL_DEV_MODE": "1", - "POSTGRES_USER": "treeseed", - "POSTGRES_DB": "treeseed_api", - "TREESEED_API_BASE_URL": "https://api.treeseed.localhost", - "TREESEED_SITE_URL": "https://admin.treeseed.localhost", - "TREESEED_API_AUTH_APPROVAL_BASE_URL": "https://admin.treeseed.localhost", - "TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST": "adrian.webb@knowledge.coop", - "TREESEED_MAILPIT_SMTP_HOST": "mailpit", - "TREESEED_MAILPIT_SMTP_PORT": "1025", - "TREESEED_TREEDX_URL": "http://treedx:4000", - "TREESEED_TREEDX_JWT_ISSUER": "https://api.treeseed.localhost/treedx", - "TREESEED_TREEDX_JWT_AUDIENCE": "treedx" - }, - "secretEnvironment": { - "POSTGRES_PASSWORD": "api-postgres-password", - "TREESEED_DATABASE_URL": "api-database-url", - "SESSION_SECRET": "api-session-secret", - "TREESEED_TREEDX_DELEGATION_PRIVATE_KEY": "api-treedx-delegation-private-key", - "TREESEED_TREEDX_CREDENTIAL_BROKER_ASSERTION": "treedx-credential-broker-assertion", - "TREESEED_GITHUB_TOKEN": "github-repository-token" - } - } - }, - "admin": { - "enabled": true, - "track": "development", - "connections": { - "api": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "NODE_ENV": "production", - "TREESEED_SITE_URL": "https://admin.treeseed.localhost" - } - } - }, - "agent": { - "enabled": true, - "track": "development", - "aliases": {}, - "connections": { - "control-plane": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "TREESEED_PROVIDER_MODE": "development" - }, - "files": { - "treeseed.capacity-provider.yaml": "schemaVersion: 5\nownership:\n type: team\n teamId: team:treeseed\nconfiguration:\n generation: managed-development-v5\nidentity:\n privateKeyRef: data://identity-v3.json\n displayName: TreeSeed managed development provider\ncapacity:\n maxConcurrentWorkers: 4\n cpuCores: 8\n memoryBytes: 17179869184\n maxActiveSeconds: 28800\n maxInputTokens: 4000000\n maxOutputTokens: 1000000\n maxCost: 100\n currency: USD\n maxAttempts: 3\ncredentialProfiles: []\nsandbox:\n required: true\n brokerSocket: /run/treeseed/sandbox/broker.sock\n runtime: kata-runtime-rs-qemu\n profiles:\n - id: read\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 2\n memoryBytes: 4294967296\n diskBytes: 8589934592\n processLimit: 512\n outputBytes: 67108864\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: unit\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: integration\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 12884901888\n diskBytes: 25769803776\n processLimit: 2048\n outputBytes: 268435456\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: platform\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 8\n memoryBytes: 17179869184\n diskBytes: 34359738368\n processLimit: 4096\n outputBytes: 536870912\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - id: connected\n guestImage: treeseed/sandbox-codex\n guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a\n defaultDenyNetwork: true\n resources:\n cpuCores: 4\n memoryBytes: 8589934592\n diskBytes: 17179869184\n processLimit: 1024\n outputBytes: 134217728\n lineage:\n baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b\n provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0\n architectures:\n - amd64\n - arm64\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\nlanes:\n - id: communication\n purpose: communication\n priority: 100\n reservedConcurrentWorkers: 1\n maxConcurrentWorkers: 2\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 120\n capabilities:\n - treeseed.coordination.conversation\n - treeseed.engineering.repository-analysis\n - treeseed.research.synthesis\n - id: platform\n purpose: platform\n priority: 70\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n capabilities:\n - treeseed.engineering.architecture\n - treeseed.engineering.code-change\n - treeseed.engineering.review\n - id: workday\n purpose: workday\n priority: 50\n reservedConcurrentWorkers: 0\n maxConcurrentWorkers: 4\n borrowWhenIdle: true\n lendWhenIdle: true\n reclaimPolicy: admission\n queueLimit: 100\n timeoutSeconds: 900\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n capabilities:\n - treeseed.coordination.planning\n - treeseed.engineering.code-change\n - treeseed.research.synthesis\n - treeseed.publishing.documentation\nadapters:\n - id: codex-local\n adapter: codex\n isolation: microvm\n module: module:codex-chat\n profile: api\n protocol: responses\n model:\n model: gpt-5.4\n credentialProfiles: []\n laneIds:\n - communication\n - platform\n - workday\n maxConcurrentWorkers: 4\n minimumAssignmentDuration:\n amount: 600\n unit: seconds\n nativeLimits:\n availableAgentSeconds: 28800\n offers:\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-conversation\n capabilities:\n - id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n - id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n - id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n - id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n - id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n - id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n - id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n - id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n - id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n - id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n - id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n - id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n - id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n - id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n - id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n - id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n - id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n - id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n - id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.conversation\n version: 1.0.0\n digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.question-answering\n version: 1.0.0\n digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.planning\n version: 1.0.0\n digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.estimation\n version: 1.0.0\n digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.review\n version: 1.0.0\n digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.reporting\n version: 1.0.0\n digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.human-task-routing\n version: 1.0.0\n digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.coordination.decision-support\n version: 1.0.0\n digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.web\n version: 1.0.0\n digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.literature\n version: 1.0.0\n digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.market\n version: 1.0.0\n digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.repository\n version: 1.0.0\n digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.dataset-discovery\n version: 1.0.0\n digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.retrieval\n version: 1.0.0\n digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.extraction\n version: 1.0.0\n digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.verification\n version: 1.0.0\n digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.citation\n version: 1.0.0\n digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.synthesis\n version: 1.0.0\n digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.research.experimentation\n version: 1.0.0\n digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6\n sandboxProfileId: read\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-engineering\n capabilities:\n - id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n - id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n - id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n - id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n - id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n - id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n - id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n - id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n - id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n - id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n - id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n - id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n - id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n - id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.architecture\n version: 1.0.0\n digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.repository-analysis\n version: 1.0.0\n digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.code-change\n version: 1.0.0\n digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.refactoring\n version: 1.0.0\n digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.dependency-update\n version: 1.0.0\n digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.build\n version: 1.0.0\n digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.unit-testing\n version: 1.0.0\n digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.integration-testing\n version: 1.0.0\n digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.end-to-end-testing\n version: 1.0.0\n digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.debugging\n version: 1.0.0\n digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.review\n version: 1.0.0\n digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.performance-analysis\n version: 1.0.0\n digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.accessibility\n version: 1.0.0\n digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.engineering.infrastructure\n version: 1.0.0\n digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-data\n capabilities:\n - id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n - id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n - id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n - id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n - id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n - id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n - id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n - id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n - id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n - id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n - id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n - id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n - id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n - id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n - id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n - id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.source-connection\n version: 1.0.0\n digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.extraction\n version: 1.0.0\n digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.ingestion\n version: 1.0.0\n digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.synchronization\n version: 1.0.0\n digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-inference\n version: 1.0.0\n digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.schema-mapping\n version: 1.0.0\n digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.normalization\n version: 1.0.0\n digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.transformation\n version: 1.0.0\n digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.enrichment\n version: 1.0.0\n digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.entity-resolution\n version: 1.0.0\n digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.validation\n version: 1.0.0\n digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.quality-analysis\n version: 1.0.0\n digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.lineage\n version: 1.0.0\n digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.statistical-analysis\n version: 1.0.0\n digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.visualization\n version: 1.0.0\n digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.data.export\n version: 1.0.0\n digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15\n sandboxProfileId: unit\n - offer:\n schemaVersion: treeseed.capability-offer/v1\n offerId: codex-publishing\n capabilities:\n - id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n - id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n - id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n - id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n - id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n - id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n - id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n - id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n - id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n - id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n - id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n - id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n features: []\n configurationSupport:\n instructions.system:\n required: true\n preferred: true\n instructions.task:\n required: true\n preferred: true\n instructions.templates:\n required: true\n preferred: true\n context.queries:\n required: true\n preferred: true\n tools.policy:\n required: true\n preferred: true\n intelligence.reasoning-effort:\n required: true\n preferred: true\n permissionClasses:\n - content-policy\n - repository-policy\n - network-policy\n - shell-policy\n - tool-policy\n contextModes:\n - inline\n - manifest\n inputContracts: []\n outputContracts: []\n interactionModes:\n - asynchronous\n - interactive\n conformance:\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.drafting\n version: 1.0.0\n digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.editing\n version: 1.0.0\n digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.translation\n version: 1.0.0\n digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.structured-content\n version: 1.0.0\n digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.documentation\n version: 1.0.0\n digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.cms\n version: 1.0.0\n digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.repository\n version: 1.0.0\n digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.package-artifact\n version: 1.0.0\n digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-build\n version: 1.0.0\n digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.site-deployment\n version: 1.0.0\n digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.syndication\n version: 1.0.0\n digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n - schemaVersion: treeseed.capability-conformance/v1\n providerId: runtime-provider\n capability:\n id: treeseed.publishing.release-notes\n version: 1.0.0\n digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1\n tier: signed-attestation\n status: passed\n evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed\n suite: null\n issuedAt: 2026-08-30T00:00:00.000Z\n expiresAt: null\n signature:\n keyId: runtime-provider\n algorithm: Ed25519\n value: materialize-at-runtime\n limits: {}\n commercial:\n currency: null\n estimatedCost: null\n region: null\n trust:\n - provider-signed\n offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355\n sandboxProfileId: unit\nconnections: []\nmetadata:\n custody: manager-owned\n sharedBattery: true\nontology:\n generation: 3\n digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38\n" - } - } - }, - "treedx": { - "enabled": true, - "track": "development", - "aliases": { - "treedx.treedx.http": "treedx.treeseed.localhost" - }, - "connections": { - "control-plane": { - "kind": "local", - "componentId": "api", - "serviceId": "api", - "endpointId": "http" - } - }, - "configuration": { - "environment": { - "TREEDX_GIT_EXTERNAL_TRANSPORT_ENABLED": "true", - "TREEDX_GIT_ALLOWED_HOSTS": "github.com", - "TREEDX_REMOTE_CREDENTIAL_BROKER_SERVICE_ID": "node_local", - "TREEDX_BOOTSTRAP_TRUST_ACTOR_ID": "treeseed-api", - "TREEDX_BOOTSTRAP_TRUST_TENANT_ID": "treeseed-control-plane", - "TREEDX_JWT_ISSUER": "https://api.treeseed.localhost/treedx", - "TREEDX_JWT_AUDIENCE": "treedx", - "TREEDX_JWT_ALLOWED_ALGS": "RS256" - }, - "secretEnvironment": { - "TREEDX_REMOTE_CREDENTIAL_BROKER_ASSERTION": "treedx-credential-broker-assertion" - } - } - }, - "lab": { - "enabled": true, - "track": "development", - "aliases": { - "lab.mailpit.web": "mail.treeseed.localhost", - "lab.diagnostics.http": "lab.treeseed.localhost" - }, - "configuration": { - "environment": {} - } - }, - "ai-inference": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - }, - "ai-training": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - }, - "ai-lab": { - "enabled": false, - "track": "stable", - "aliases": {}, - "configuration": {} - } - }, - "network": { - "manager": { - "binding": "127.0.0.1:4790", - "aliases": [ - "manager.treeseed.localhost" - ], - "sans": [ - "manager.treeseed.localhost", - "127.0.0.1" - ], - "trustedLanCidrs": [] - } - }, - "fleet": { - "rolloutGroup": "development-workstation", - "receiptReporting": { - "enabled": false, - "intervalSeconds": 300 - } - }, - "secrets": { - "api-postgres-password": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-postgres-password" - }, - "api-database-url": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-database-url" - }, - "api-session-secret": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-session-secret" - }, - "api-treedx-delegation-private-key": { - "provider": "file", - "reference": "/etc/treeseed/credentials/api-treedx-delegation-private-key" - }, - "treedx-credential-broker-assertion": { - "provider": "file", - "reference": "/etc/treeseed/credentials/treedx-credential-broker-assertion" - }, - "github-repository-token": { - "provider": "file", - "reference": "/etc/treeseed/credentials/github-repository-token" - } - }, - "security": { - "sandbox": { - "required": true, - "runtime": "kata-runtime-rs-qemu", - "brokerSocket": "/run/treeseed/sandbox/broker.sock", - "modelGateway": { - "provider": "openai", - "upstreamBaseUrl": "https://api.openai.com", - "allowedModels": [ - "gpt-5.4" - ] - }, - "profiles": [ - { - "id": "read", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "unit", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "integration", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "platform", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - }, - { - "id": "connected", - "guestImage": "treeseed/sandbox-codex", - "guestImageDigest": "sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a" - } - ] - }, - "providerVolume": { - "encryption": "luks2", - "backingPath": "/var/lib/treeseed/encrypted/provider-data.luks", - "mountPath": "/var/lib/treeseed/agent", - "sizeBytes": 17179869184, - "unlock": "systemd-credential", - "recoveryRequired": true - }, - "applicationEncryption": { - "provider": "systemd-credential", - "activeKeyVersion": 1, - "diagnosticsKeyVersion": 1 - } - } -} diff --git a/deployment/integration-releases/development.json b/deployment/integration-releases/development.json deleted file mode 100644 index 71cc772a..00000000 --- a/deployment/integration-releases/development.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc179", - "generation": 140, - "track": "development", - "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { - "repository": "treeseed-ai/platform", - "commit": "14e4df35d7f2f91f9b8a8cc89a7e8b6fcd0817de" - }, - "deployment": { - "repository": "treeseed-ai/deployment", - "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", - "tag": "0.1.0-rc.179" - }, - "hostPayloads": [ - { - "id": "sdk", - "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.60", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.60.tgz", - "sha256": "b98120e2995bf7f98fb1bf76e60314915d0764bdf1b4156d7cc0f1640b19d652" - } - }, - { - "id": "api", - "packageName": "@treeseed/api", - "version": "0.8.0-rc.60", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", - "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" - } - }, - { - "id": "ui", - "packageName": "@treeseed/ui", - "version": "0.12.18-rc.11", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", - "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" - } - }, - { - "id": "core", - "packageName": "@treeseed/core", - "version": "0.12.60-rc.8", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", - "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" - } - }, - { - "id": "admin", - "packageName": "@treeseed/admin", - "version": "0.12.59-rc.22", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", - "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" - } - }, - { - "id": "reviewer", - "packageName": "@treeseed/reviewer", - "version": "0.1.0-rc.13", - "artifact": { - "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", - "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" - } - }, - { - "id": "playwright-core", - "packageName": "playwright-core", - "version": "1.60.0", - "artifact": { - "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" - } - }, - { - "id": "cli", - "packageName": "@treeseed/cli", - "version": "0.13.0-rc.38", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.38.tgz", - "sha256": "5212b922d338f4c2571b11e3fde2a922a72d9782bc5a96cfb5c1263647da3c86" - } - }, - { - "id": "treedx", - "packageName": "@treeseed/treedx", - "version": "0.3.0-rc.12", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", - "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" - } - }, - { - "id": "yaml", - "packageName": "yaml", - "version": "2.9.0", - "artifact": { - "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" - } - }, - { - "id": "zod", - "packageName": "zod", - "version": "3.25.76", - "artifact": { - "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" - } - } - ], - "components": [ - { - "componentId": "api", - "release": "0.8.0~rc60-1", - "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", - "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", - "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" - } - } - ] - }, - { - "componentId": "admin", - "release": "0.12.59~rc22-1", - "manifest": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", - "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", - "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" - } - } - ] - }, - { - "componentId": "agent", - "release": "0.13.0~rc36-1", - "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", - "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", - "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" - } - } - ] - }, - { - "componentId": "treedx", - "release": "0.3.0~rc12-1", - "manifest": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", - "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", - "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" - } - } - ] - }, - { - "componentId": "lab", - "release": "0.1.0~rc34-1", - "manifest": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", - "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", - "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" - } - } - ] - }, - { - "componentId": "ai-inference", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", - "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" - }, - "files": [ - { - "path": "ai-inference-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", - "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" - } - } - ] - }, - { - "componentId": "ai-training", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", - "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" - }, - "files": [ - { - "path": "ai-training-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", - "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" - } - } - ] - }, - { - "componentId": "ai-lab", - "release": "0.11.0~rc19-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", - "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" - }, - "files": [ - { - "path": "ai-lab-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", - "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" - } - } - ] - } - ], - "createdAt": "2026-08-31T05:25:00.000Z" -} diff --git a/deployment/integration-releases/stable.json b/deployment/integration-releases/stable.json deleted file mode 100644 index 6c182f24..00000000 --- a/deployment/integration-releases/stable.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0", - "generation": 36, - "track": "stable", - "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, - "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, - { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, - { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } - ], - "components": [], - "createdAt": "2026-08-28T06:02:00.000Z" -} diff --git a/deployment/profiles/ai-connected.json b/deployment/profiles/ai-connected.json deleted file mode 100644 index 31a23ab7..00000000 --- a/deployment/profiles/ai-connected.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-connected", - "default": false, - "extends": "ai-factory", - "components": { - "api": { - "enabled": true, - "configuration": { - "environment": { "TREESEED_TREEAI_NODES": "{\"local-ai\":{\"endpoints\":{\"inference\":\"http://inference-api:4770\",\"training\":\"http://training-api:4780\",\"lab\":\"http://controller:8081\"},\"tokenEnvironment\":\"TREESEED_TREEAI_OPERATOR_TOKEN\"}}" }, - "secretEnvironment": { "TREESEED_TREEAI_OPERATOR_TOKEN": "treeai-operator-token" } - } - } - }, - "secrets": { "treeai-operator-token": { "provider": "file", "reference": "/etc/treeseed/credentials/treeai-operator-token" } } -} diff --git a/deployment/profiles/ai-factory.json b/deployment/profiles/ai-factory.json deleted file mode 100644 index 2ad750e6..00000000 --- a/deployment/profiles/ai-factory.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-factory", - "default": false, - "components": { - "ai-inference": { - "enabled": true, - "track": "development", - "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "INFERENCE_DATABASE_URL": "ai-inference-database-url", - "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", - "AI_API_KEYS": "ai-inference-api-keys" - } } - }, - "ai-training": { - "enabled": true, - "track": "development", - "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "TRAINING_DATABASE_URL": "ai-training-database-url", - "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", - "AI_API_KEYS": "ai-training-api-keys" - } } - }, - "ai-lab": { - "enabled": true, - "track": "development", - "aliases": { - "ai-lab.open-webui.web": "chat.ai.treeseed.localhost", - "ai-lab.hermes-dashboard.web": "hermes.ai.treeseed.localhost" - }, - "connections": { - "inference": { "kind": "local", "componentId": "ai-inference", "serviceId": "inference-api", "endpointId": "inference" }, - "training": { "kind": "local", "componentId": "ai-training", "serviceId": "training-api", "endpointId": "control" } - }, - "configuration": { "secretEnvironment": { "AI_LAB_API_KEYS": "ai-lab-api-keys" } } - } - }, - "secrets": { - "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, - "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, - "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, - "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, - "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" }, - "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, - "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, - "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, - "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" }, - "ai-lab-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-api-keys" }, - "training-source": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-source" }, - "ai-mode-ca": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-ca.crt" }, - "ai-mode-client-cert": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.crt" }, - "ai-mode-client-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-mode-client.key" }, - "factory-inference-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-inference-key" }, - "factory-training-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-factory-training-key" }, - "hermes-api-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-api-key" }, - "hermes-password-hash": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-password-hash" }, - "hermes-session-secret": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-hermes-session-secret" }, - "training-ingest-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-training-ingest-key" }, - "lab-library-action-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-lab-lab-library-action-key" } - } -} diff --git a/deployment/profiles/ai-inference.json b/deployment/profiles/ai-inference.json deleted file mode 100644 index 28bca3f6..00000000 --- a/deployment/profiles/ai-inference.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-inference", - "default": false, - "components": { - "ai-inference": { - "enabled": true, - "track": "development", - "aliases": { "ai-inference.inference-api.control": "inference.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "INFERENCE_DATABASE_URL": "ai-inference-database-url", - "INFERENCE_POSTGRES_PASSWORD": "ai-inference-postgres-password", - "AI_API_KEYS": "ai-inference-api-keys" - } } - }, - "ai-training": { "enabled": false }, - "ai-lab": { "enabled": false } - }, - "secrets": { - "ai-inference-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-database-url" }, - "ai-inference-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-postgres-password" }, - "ai-inference-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-api-keys" }, - "artifact-source-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-source" }, - "artifact-destination-registry": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-inference-artifact-destination" } - } -} diff --git a/deployment/profiles/ai-training.json b/deployment/profiles/ai-training.json deleted file mode 100644 index 08594c37..00000000 --- a/deployment/profiles/ai-training.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-profile/v1", - "id": "ai-training", - "default": false, - "components": { - "ai-inference": { "enabled": false }, - "ai-training": { - "enabled": true, - "track": "development", - "aliases": { "ai-training.training-api.control": "training.ai.treeseed.localhost" }, - "configuration": { "secretEnvironment": { - "TRAINING_DATABASE_URL": "ai-training-database-url", - "TRAINING_POSTGRES_PASSWORD": "ai-training-postgres-password", - "AI_API_KEYS": "ai-training-api-keys" - } } - }, - "ai-lab": { "enabled": false } - }, - "secrets": { - "ai-training-database-url": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-database-url" }, - "ai-training-postgres-password": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-postgres-password" }, - "ai-training-api-keys": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-training-api-keys" }, - "artifact-signing-key": { "provider": "file", "reference": "/etc/treeseed/credentials/ai-artifact-signing-key" } - } -} diff --git a/deployment/treeai-component-inputs.json b/deployment/treeai-component-inputs.json deleted file mode 100644 index 3f23172c..00000000 --- a/deployment/treeai-component-inputs.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "schemaVersion": "treeseed.platform-component-inputs/v1", - "release": "0.11.0-rc9", - "sourceCommit": "92c7b2edc73416d77c5c0a6789ef73dba71ddf92", - "releaseUrl": "https://github.com/treeseed-ai/ai/releases/tag/0.11.0-rc9", - "contractReleaseSha256": "be5aca3d87167057494feadb9c9c0291c2047c9b7079ac2f241ec5238c5709d8", - "imageManifestSha256": "a4a727b0d7c8a0e0a2f688a9006ca020e1030275026880361a06a105dc040c2d", - "contracts": { - "genericSdk": { - "packageName": "@treeseed/treeai", - "version": "0.11.0-rc9", - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/treeseed-treeai-0.11.0-rc9.tgz", - "sha256": "90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2" - }, - "openapi": { - "inference": "3a00f1d91635d87d0aad2c6d329f495ff210f393bc9851570aa3e3ad1f5c1db4", - "training": "89dc70cecc85079853e4f177827d681e66f4b24b93ef17713051b99f07c2fe00", - "lab": "bccafa27b00a63b9fb22b132b850f9af6e77d44047dbc8966344088266d65898", - "qualification": "3f68b78845ec19c5de389663f1cb677ab4df0683ecd113c4f5780885a89370b7" - }, - "operationInventorySha256": "dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc", - "sdkManifestSha256": "032fcc4a96d6fca185b23d6b98a778bb438d833b6e077818eab100ab2ef1d849", - "treeSeedSdk": { - "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.53", - "sourceCommit": "ac6a535b99867cfc9e955b71ec333ed28980020a", - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.53.tgz", - "sha256": "7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4" - }, - "api": { - "packageName": "@treeseed/api", - "version": "0.8.0-rc.49", - "sourceCommit": "330da2e218f8507904bd8036bcff98eba6958e7c", - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.49/treeseed-api-0.8.0-rc.49.tgz", - "sha256": "1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037", - "componentManifestSha256": "9f5cbe4ac6cc00b91e44051d854fc84d6b50ef7d8abf365011b542450ba4675d", - "composeSha256": "0c490630e465a6df14b702278bb1e51936621712e9dac1322c23a180c47e4fe2" - }, - "cli": { - "packageName": "@treeseed/cli", - "version": "0.13.0-rc.30", - "sourceCommit": "63c075ba5b93c517b3860ef545b2c121a27d30c1", - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.30.tgz", - "sha256": "a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7" - } - }, - "components": [ - { - "componentId": "ai-inference", - "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-component-release.json", "sha256": "9991d75d542abb40ec67bdbbd86e1968e2fdcd32c8fc83c886ed0436b2c4acfe" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-inference-compose.yml", "sha256": "d7aa81b7a157570688b167b2ec9011c3950178f75a41b3c91f4497dcf215a6d0" } - }, - { - "componentId": "ai-training", - "dependencies": [], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-component-release.json", "sha256": "12ca312963d9f645c1cbdb1c0b8967f4d7d6ac2714f830044202362740a905f8" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-training-compose.yml", "sha256": "a87aaf86c4e313764db731cc3dc853881f7cb90b73a4a31b776b6e0465919ce4" } - }, - { - "componentId": "ai-lab", - "dependencies": ["ai-inference", "ai-training"], - "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-component-release.json", "sha256": "ea5865ea470f9206dbc8cb5143bd0b9022b41214cf0b9202c0410d5484321aae" }, - "compose": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc9/ai-lab-compose.yml", "sha256": "9c6d50ecab7e77f32332e396fdc2e29253af4244c1d0bc943123b5ad72c9c5a3" } - } - ] -} diff --git a/development.acceptance.session.yaml b/development.acceptance.session.yaml deleted file mode 100644 index f9c2c2e9..00000000 --- a/development.acceptance.session.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Full local acceptance environment used by repository-owned TreeSeed scenes. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: live }] - - manifest: packages/ui/treeseed.package.yaml - worktree: packages/ui - targets: [{ id: package, mode: live }] - - manifest: packages/core/treeseed.package.yaml - worktree: packages/core - targets: [{ id: package, mode: live }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] - - manifest: packages/admin/treeseed.package.yaml - worktree: packages/admin - targets: [{ id: web, mode: live }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: candidate }] diff --git a/development.chat-context.session.yaml b/development.chat-context.session.yaml deleted file mode 100644 index d7d53e3a..00000000 --- a/development.chat-context.session.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# End-to-end chat and assignment-context development with a candidate capacity provider. -# Use development.communication-rollout.session.yaml when provider behavior is out of scope. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: live }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: live }, { id: operations-runner, mode: candidate }] - - manifest: packages/cli/treeseed.package.yaml - worktree: packages/cli - targets: [{ id: package, mode: live }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: candidate }] diff --git a/development.communication-rollout.session.yaml b/development.communication-rollout.session.yaml deleted file mode 100644 index e072174b..00000000 --- a/development.communication-rollout.session.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Communication control-plane development without replacing the released capacity provider. -# Use development.chat-context.session.yaml when provider behavior is part of the test. -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: - - { id: package, mode: live } - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: - - { id: service, mode: live } - - { id: operations-runner, mode: candidate } - - manifest: packages/cli/treeseed.package.yaml - worktree: packages/cli - targets: - - { id: package, mode: live } - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: - - { id: provider, mode: released } diff --git a/development.session.yaml b/development.session.yaml deleted file mode 100644 index 3b8a99bf..00000000 --- a/development.session.yaml +++ /dev/null @@ -1,29 +0,0 @@ -schemaVersion: treeseed.development-selection/v1 -projects: - - manifest: packages/ai/treeseed.package.yaml - worktree: packages/ai - targets: - - { id: ai-inference, mode: released } - - { id: ai-training, mode: released } - - { id: ai-lab, mode: released } - - manifest: packages/sdk/treeseed.package.yaml - worktree: packages/sdk - targets: [{ id: package, mode: released }] - - manifest: packages/ui/treeseed.package.yaml - worktree: packages/ui - targets: [{ id: package, mode: released }, { id: sandbox, mode: released }] - - manifest: packages/core/treeseed.package.yaml - worktree: packages/core - targets: [{ id: package, mode: released }] - - manifest: packages/api/treeseed.package.yaml - worktree: packages/api - targets: [{ id: service, mode: released }, { id: operations-runner, mode: released }] - - manifest: packages/admin/treeseed.package.yaml - worktree: packages/admin - targets: [{ id: web, mode: released }] - - manifest: packages/agent/treeseed.package.yaml - worktree: packages/agent - targets: [{ id: provider, mode: released }] - - manifest: packages/reviewer/treeseed.package.yaml - worktree: packages/reviewer - targets: [{ id: companion, mode: released }] diff --git a/docs/agent-communication-readiness.md b/docs/agent-communication-readiness.md index 085b63d1..25a88356 100644 --- a/docs/agent-communication-readiness.md +++ b/docs/agent-communication-readiness.md @@ -6,7 +6,7 @@ The local control plane and TreeDX service are live. The canonical `treeseed` se The owner memberships are: -- Adrian Webb, bound to `adrian.webb@knowledge.coop` as an interactive human owner. +- An installation-supplied interactive human owner. - `service-principal:treeseed/automation`, bound as a non-login service owner. Provider workers do not inherit this owner's authority. The unified local capacity provider is enrolled and owner-approved as `provider_LtqmnSGecDlhDPb2-7WgyLkKwxI8VDAO`. Its manager is renewing availability session `5e033c5a-c8c2-439d-8a0c-96dff8da1e24`, and its runner is live and polling without claiming work. `codex-local` is available only on the `communication` lane with one reserved worker and two-worker maximum. Exactly fifteen active project grants are narrowed to that adapter and lane. `platform-local` remains unavailable and the `workday` lane is paused, so global seed closure truthfully retains `lane_execution_unavailable:platform` and `lane_execution_unavailable:workday` without blocking communication. diff --git a/docs/production-readiness-migration-ledger.md b/docs/production-readiness-migration-ledger.md index 43031d65..f0a5b11b 100644 --- a/docs/production-readiness-migration-ledger.md +++ b/docs/production-readiness-migration-ledger.md @@ -443,7 +443,7 @@ The real TreeSeed team proved the new Designer against live TreeDX definitions r ### Repository-authored simulation reached the real team workday boundary -Simulation Bay committed its generated scene and seed through TreeDX and published exact GitHub content refs `aa5c57e0388a5c33b745dcb4fb6ff44b8b54a5d5` and `419a9769411981af0f64f85f8b3043c95cc81913`. This acceptance exposed four recovery defects instead of hiding them behind fixture aliases: remote fetch read-back checked a ref TreeDX does not expose; a fetched content ref could be current while graph/search state remained stale and the reconciler incorrectly planned `noop`; an immutable operation bundle was incorrectly treated as the live provider-runtime root; and the generated simulation invented a legacy `capacity-provider:treeseed/local` rather than resolving the active project grant's seed identity and execution-provider inventory. Fresh branch-ref verification, stale-index update planning, explicit `TREESEED_TENANT_ROOT`, and grant-derived provider references now own those boundaries. The resulting operation created and ticked real retained workday `agent-lab:27ab4e43-e1ca-4d39-b3c2-e2684aa7b755:cooperative-planning-demo` through the reconciled `capacity-provider:treeseed/agents` runtime. +Simulation Bay committed its generated scene and seed through TreeDX and published exact GitHub content refs `aa5c57e0388a5c33b745dcb4fb6ff44b8b54a5d5` and `419a9769411981af0f64f85f8b3043c95cc81913`. This acceptance exposed four recovery defects instead of hiding them behind fixture aliases: remote fetch read-back checked a ref TreeDX does not expose; a fetched content ref could be current while graph/search state remained stale and the reconciler incorrectly planned `noop`; an immutable operation bundle was incorrectly treated as the live provider-runtime root; and the generated simulation invented a fixed local provider identity rather than resolving the active project grant's seed identity and execution-provider inventory. Fresh branch-ref verification, stale-index update planning, explicit `TREESEED_TENANT_ROOT`, and grant-derived provider references now own those boundaries. The resulting operation created and ticked a retained cooperative-planning workday through the reconciled agent runtime. That live workday then exposed two content/forensic edge cases. SSE projection passed `null` URL filters into the Zod query contract and crashed the API; absent filters are now normalized before validation with a focused regression. The draft generator also selected the alphabetically first historical test even when its target agent was intentionally dormant. It now authors a Zod-validated project-inventory agent test from enabled durable agents and pins that test in the scene. A mixed create/update bundle additionally proved TreeDX batch reads fail atomically when one requested path is missing; authoring now observes each proposed path independently before building one atomic changeset. API lint/build and the focused workday-activity regression pass. The final inventory-test publication and completed Atlas return remain the current live gate; failed operations and reports are retained as forensic evidence. @@ -578,7 +578,7 @@ Authenticated scene `20260813t002808753z` then passed all 12 focus, vital-densit Canonical provider reconciliation rebuilt the absent Agent manager and runner images, restored both Agent and platform-operation Compose units, and fresh status now reports all six provider resources ready with no blockers. The first deliberately small planning selections exposed a plan/apply parity defect: CLI plan checked repository binding and class presence but did not compile the selected signal DAG or cooperative time budget, while API execution correctly rejected an invalid single-profile graph and an underfunded two-profile graph. Scheduling validation therefore remains an API-owned preflight gap; the CLI must consume that exact read-only result rather than duplicate the planning compiler. -Bounded acceptance run `bd79f131-3d3b-4e14-8801-db9ec9d39c82` proved a real two-profile chain. Audience Reviewer completed through Codex, committed `src/content/notes/editorial/books/treeseed-guide/reviews/core-objective-reader-journey-assessment.mdx` through TreeDX, and published the upstream signal that admitted Guide Steward. It also exposed two operator-boundary defects. First, the authenticated browser fixture belongs only to its isolated visual-audit team, so an internal TreeSeed-team run is correctly invisible in that session. The supported human path is the pending seed membership for `adrian.webb@treeseed.dev`, claimed when that verified account is created; automation must not weaken authorization by silently adding visual-test identities to the development team. Second, `workday-cancel` targets a project envelope while `workday-run` returns a parent coordination-run ID. Cancelling only the envelope left parent admission authority active. The CLI now exposes and documents `workday-run-cancel`, which transitions the API-owned parent and terminalizes remaining envelopes and assignments; its request compiler has focused coverage. +Bounded acceptance proved a real two-profile chain. Audience Reviewer completed through Codex, committed its assessment through TreeDX, and published the upstream signal that admitted Guide Steward. It also exposed two operator-boundary defects. First, the authenticated browser fixture belongs only to its isolated visual-audit team, so an internal team run is correctly invisible in that session. The supported human path is an installation-supplied pending membership claimed by its verified account; automation must not weaken authorization by silently adding visual-test identities to the development team. Second, `workday-cancel` targets a project envelope while `workday-run` returns a parent coordination-run ID. Cancelling only the envelope left parent admission authority active. The CLI now exposes and documents `workday-run-cancel`, which transitions the API-owned parent and terminalizes remaining envelopes and assignments; its request compiler has focused coverage. Fresh summary read-back proves the run closed without hidden work: the parent and Market envelope are cancelled, assignments total two with one completed and one failed, pending and leased counts are zero, mode runs are terminal, reservations total two, usage actuals total three, and ledger entries total two. One ledger entry is the normal Audience Reviewer provider settlement and one is explicit terminalization of Guide Steward. The focused CLI suite passes 5/5 and the CLI build passes. A broad standard clean plan was intentionally not applied because it would remove about 1.47 GB of retained scene evidence, including the accepted workspace-focus run; cleanup remains pending until the relevant evidence is bundled or a narrower supported cleanup scope exists. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 10f69424..6584bcd8 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -23,7 +23,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail - Active repositories: SDK staging `548c13ac8bf156361c0329fd4117e266bc541d41` / immutable `0.13.0-rc.25`; API staging `819dbcd3aa24661ceab98df4e1413853a0166548` / tag `0.8.0-rc.7`; CLI staging `de880f4e6abeba8b9e484f80486d595f76ef73fa` / immutable `0.13.0-rc.11`; Agent staging `dfdda15d9aa72d14cb88186965c3bb5bf3b60c6c` / immutable `0.13.0-rc.9`; TreeDX staging `557c41f8e631cb440f21512cc5f182195805c9b9` / immutable `0.3.0-rc.4`; Platform readiness staging `85e5b51061df7c2102a97f06ec6709d446de1dc6`. The first live communication send remains the explicit next boundary. - Completed bootstrap repositories: `treeseed-ai/cli`, `treeseed-ai/platform`, and the SDK source canary - Next action: run the first live, single-recipient SDK communication through `trsd send`, observe the communication assignment through the live provider runner, verify the TreeDX response, exact settlement, human Markdown panel, and zero execution residue, then repeat as the clean-repeat scene. Platform and workday adapters remain explicitly unavailable and outside this first communication run. -- Unified seed and capacity-provider battery checkpoint: `in_progress`. Audit found the canonical seed omits Market and Market API, uses stale owner email and removed `agentLabServicePrincipals`, and declares separate platform/agent providers. Accepted SDK still exposes `treeseed.capacity-provider/v2` with `agent | platform-operation`; API seed apply plans but does not reconcile provider prerequisites; Agent selects only its default executor and ignores declared lanes; CLI provider leaves are not fully bound. Target is one approved local provider with shared communication/platform/workday capacity, reserved-borrowable communication admission, an isolated platform executor, owner memberships for `adrian.webb@knowledge.coop` and a non-login automation service principal, and exact grants across fifteen projects. Live agents, workdays, repository mutation, and TreeDX mutation remain fail-closed. +- Unified seed and capacity-provider battery checkpoint: `in_progress`. Audit found the canonical seed omitted Market and Market API, used a host-specific owner identity, and declared separate platform/agent providers. The target is an approved provider with shared communication/platform/workday capacity, reserved-borrowable communication admission, an isolated platform executor, installation-supplied membership, and exact project grants. Live agents, workdays, repository mutation, and TreeDX mutation remain fail-closed. - Derived virtual-knowledge-repository checkpoint: root projects are the only seed-declared ownership resources. Each root project automatically owns one TreeDX virtual knowledge repository exposed through file, blob, search, graph, context, and artifact operations and backed by the selected TreeDX storage profile (local now; R2-capable binding later). These are not GitHub repositories and have no checkout, branch, PR, Actions, or package-release policy. Platform Issue #33 / PR #34 removed the fifteen false Git content bindings and merged as staging `3c7052f`; digest changed from `sha256:4277f55449ed1d0a6e4d21f4d3e356890006a5383bdf0aa520a8a4121dd1bbb0` to `sha256:5c2ca42c74e21523940cf576fb08f4513eb6c21a49ccf23d8b573d945a577b0c`, leaving fifteen projects, sixteen real source/support repositories, and fifteen derived TreeDX virtual knowledge repositories. API bootstrap and content-only adoption are accepted at `5756f27aedc55af24dfc300f3f9f28d94628f61c`. SDK Issue #64 / PR #65 merged as `2b45313f66efe58fc85a873ff4fac5e89eba4c8d`; immutable RC21 publish/verify runs `32624069609`, `32624069556`, and `32624067909` passed, with npm integrity `sha512-f0qYE6uyI3qWx3F9XE3g1F0q/9CIRp7QvEvcvta+s9I2fxuwmr0Aj8BewdwZi6kbPpBH6Ng9dnhs5m0MoGtMJA==` and shasum `8b119de604d371bee9e428abae3a29b1a0dc1b5f`. TreeDX Issue #16 / PR #17 adds authoritative `retireRepository`, tombstones repository/name/placement records, moves managed storage into recoverable retired custody, and updates OpenAPI `0.11.1` plus all four generated clients for `0.3.0-rc.4`; focused store, API, OpenAPI, and SDK coverage checks pass. Remaining work: hosted acceptance and immutable TreeDX publication, then SDK/API proxy mapping and project-deletion adoption. - Unified battery SDK contract checkpoint: Issue #62 / PR #63 exact head `182b05dd8415e7d45f5934f450fda8bf9702ca5d` passed local architecture/build, deterministic standards and packed acceptance, 20 modern files/98 tests, and hosted Verify `32619054665`/`32619062873`. It merged/read back as staging `974bf855b57eac8e30250f4e3dcade2c8a4baa18`; post-merge Verify `32619090785`, tag Verify `32619118808`, and publish/read-back `32619118800` passed. Immutable npm `@treeseed/sdk@0.13.0-rc.20` has integrity `sha512-XM2ewAUACIO/umqZEsKlfdJxaDZW8IyMnH5pSoS7vcySKbMb/2bGPwJpfIIuNui9vMAkQ7KwkoIEV5fHXiFUvQ==`, shasum `6b207fd37378703a4501852cce895a667fe35a8f`, `rc=0.13.0-rc.20`, and unchanged `latest=0.12.62`. The accepted catalog contains 306 operations, 123 MCP tools, and 56 MCP resources. Next: pin API to RC20 and implement portable seed application, service-principal ownership, provider enrollment/reconciliation, and shared lane admission. - Unified battery API checkpoint: Issue #23 / PR #24 implementation `f1dfbc14c26ab7e234757f068e671b66435ba035` and follow-up Issue #25 / PR #26 merged/read back as staging `0982d41dc64f6c9c6903bc147b81e76004124ec1`. API `0.8.0-rc.3` consumes and persists uploaded bundles, owns non-login service principals, provider enrollment/approval/grants, provider-wide three-lane admission, and portable verification. Focused seed/provider/capacity tests, catalog completeness, build, hosted Verify, authorization, disposable PostgreSQL proof, and retained development database migration/read-back passed. @@ -33,7 +33,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail - Canonical portfolio checkpoint: Platform seed digest is `sha256:4277f55449ed1d0a6e4d21f4d3e356890006a5383bdf0aa520a8a4121dd1bbb0`; unified provider manifest SHA-256 is `9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c`. SDK validation reads 1 team, 2 owners, 15 projects, 31 repositories, and a provider prerequisite spanning all 15 projects with zero diagnostics. All four installer templates now use only this seed and the v3 manifest. Platform `verify:local` passes. Market PR #2 removes its competing legacy seeds without adding AGPL enforcement. Market API PR #2 makes that repository explicitly AGPL-3.0-only, adds the one-time username allowlist, moves gateway behavior out of SDK ownership, removes its Git SDK dependency, and passes build plus 3 files/6 tests. - Retained database checkpoint: before applying the v3 provider/service-principal migration, the healthy PostgreSQL 16 `treeseed_api` database read back at 637 MB. Owner-only custom-format backup `.treeseed/backups/api-control-plane/2026-08-23-pre-capacity-battery/treeseed-api-pre-capacity-battery.dump` is 149,140,950 bytes, mode `0600`, SHA-256 `b5c2717ec4ce0322035c0b0c0ff0b7fbdfc6dfb501d03624e188407b2e74db94`, and `pg_restore --list` succeeds inside the pinned PostgreSQL container. It remains retained pending explicit human deletion approval. - Unified battery composition checkpoint: `docs/evidence/unified-capacity-battery-composition.json` binds the accepted TreeDX, SDK, API, CLI, Agent, Market, Market API, and Platform staging refs; SDK/npm, CLI/npm, Agent/npm, OpenAPI, MCP, command-tree, seed, provider-manifest, hosted-run, and backup receipts. All seven GitHub repositories have zero open PRs and only `main`/`staging` branches after deleting seven Market branch pointers whose tips were already ancestors of staging. Runtime closure remains `waiting_human_authentication`; the composition explicitly keeps live agent execution false. -- Human checkpoint — local CLI OAuth device approval: the new `--server` custody intentionally has no session because legacy Market custody was not migrated. The owner must run `TREESEED_API_BASE_URL=http://127.0.0.1:3002 node packages/cli/dist/cli/main.js auth login --server local`, open the displayed local verification URL, authenticate as `adrian.webb@knowledge.coop`, and approve the device request. Passwords, device codes, OAuth tokens, custody keys, and `~/.config/treeseed` contents must not be pasted into chat. Success is an encrypted session whose read-only status resolves Adrian Webb; expiry, denial, or another principal fails. Seed/provider runtime closure proceeds immediately after read-back. +- Human checkpoint — local CLI OAuth device approval: the new `--server` custody intentionally has no session because legacy custody was not migrated. The installation owner must run `trsd auth login --server local`, open the displayed local verification URL, authenticate, and approve the device request. Passwords, device codes, OAuth tokens, and custody keys must not be pasted into chat. Success is an encrypted session whose read-only status resolves the approved principal; expiry, denial, or another principal fails. - Device-approval correction: the first human attempt proved GET `/auth/device/approve` returned a JSON instruction while POST required the bearer credential the device flow was intended to issue. API Issue #27 / PR #28 fixes the circular bootstrap with an HTML form that authenticates the existing human credential server-side, approves only the pending code, returns no OAuth credential to the browser, and preserves the bearer/JSON path. Focused OAuth protocol/custody passed 11/11, the distribution build passed, contributor authorization and both hosted Verify jobs passed, and staging reads back at `84e4ea1d9f697de91b2012f1e7dfcbdafcce5418`. The restarted local API serves the form with `no-store`, CSP, and anti-framing headers. - TreeDX control-plane proxy cutover: `verified`. TreeDX remains the independent wire authority; SDK owns the TreeSeed semantic proxy facade and mapping; API is the sole TreeSeed credential, authorization, binding, delegation, REST, OpenAPI, and MCP proxy boundary. CLI and Agent consume catalog operations without TreeDX endpoints or credentials. Exact artifacts, hosted checks, focused modern verification, Platform composition, authoritative read-back, and final PR/branch/worktree residue checks pass. Production, npm `latest`, and live agent/workday execution were not changed by this prerequisite. - TreeDX authoritative-contract checkpoint: Issue [#1](https://github.com/treeseed-ai/treedx/issues/1) / PR [#2](https://github.com/treeseed-ai/treedx/pull/2) started from exact staging `25e5ac36abd273994af8cab35c3bcbb679e6ab2b`; reviewed head `52cde66008195c329a9231cf5c58506645fe6eb7` merged and reads back as staging `ca3fbdf79f28c82060387f14887c99c44eb9a8cf`. The candidate publishes service `0.3.0-rc.1`, OpenAPI `0.11.0`, 119 operation IDs, raw OpenAPI and typed contract exports, and OpenAPI digest `sha256:52ed190300922c388b115981e60635c306c643d48a3308ef9f79975510ae1926`. Four SDK omissions are explicit all-language exceptions; any new unclassified public operation fails. The TypeScript transport propagates request ID, trace context, idempotency key, timeout, and cancellation; independent review found the pre-aborted-signal edge, fixed at the reviewed head with a regression test. TreeDX no longer depends on `@treeseed/sdk` or its deleted content publisher. Local router/OpenAPI 4/4, TypeScript 35/35, Python 32 passed/one optional live skipped, Rust 42/42, Elixir 32/32, SDK-spec, generated-freshness, and packed-package checks pass. Exact-head PR runs `32593810903` and `32593814202` passed; staging release gate `32594038645` is active. No package publication or TreeDX mutation occurred. diff --git a/package.json b/package.json deleted file mode 100644 index 761c8c90..00000000 --- a/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@treeseed/platform", - "version": "0.2.0-rc.1", - "private": true, - "license": "Apache-2.0", - "type": "module", - "packageManager": "npm@11.7.0", - "engines": { - "node": ">=22" - }, - "devDependencies": { - "@treeseed/sdk": "0.13.0-rc.59", - "yaml": "2.9.0" - }, - "scripts": { - "capacity-provider:sync": "node scripts/synchronize-capacity-provider-manifests.mjs", - "capacity-provider:check": "node scripts/synchronize-capacity-provider-manifests.mjs --check", - "guarantees:plan": "node scripts/plan-composition-guarantees.mjs", - "guarantees:run": "node scripts/run-composition-guarantees.mjs", - "test:guarantee-plan": "node scripts/test-composition-guarantee-plan.mjs", - "test:guarantee-run": "node scripts/test-composition-guarantee-run.mjs", - "verify:development": "node --import ./packages/cli/node_modules/tsx/dist/loader.mjs scripts/verify-development-workflow.ts", - "verify": "npm run capacity-provider:check && node scripts/verify-platform.mjs", - "verify:local": "npm run capacity-provider:check && node scripts/verify-platform.mjs" - } -} diff --git a/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml deleted file mode 100644 index dadc93e0..00000000 --- a/packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml +++ /dev/null @@ -1,68 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.agent.system.guide-golden.918 -journeyIndex: 918 -type: agent -subtype: system -journey: Prove editorial Guide development end to end -ownerPackage: "@treeseed/market" -surface: cli -summary: Editorial agents improve canonical Guide content through the governed lifecycle with semantic target-ref read-back and zero residue. -status: planned -capabilityId: agent.system.guide-golden -catalog: agent.system -activation: - minimumConsecutivePasses: 3 - requiredVariants: [baseline, clean-repeat, interruption-resume] - invalidateOnSourceChange: true - distinctEntityRefs: - - subject: ephemeralProject - variants: [baseline, interruption-resume] -proof: - requiredCommands: [projects.list, capacity.context-query-checks, governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.workday-summary, capacity.treedx-proxy-audit, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - guide.editorial-lifecycle: [guide.dynamic-context, guide.proposal, guide.simulated-human-decision, guide.estimate, guide.writing, guide.editorial-review, guide.technical-review, guide.reporting, guide.settlement, guide.cleanup] - guide.semantic-content-outcome: [guide.pages, guide.required-claims, guide.relationships, guide.navigation, guide.receipts, guide.signals, guide.target-ref-read-back] - guide.ephemeral-baseline: [guide.ephemeral-project, guide.isolated-project] - guide.canonical-integration: [guide.canonical-project, guide.target-ref-read-back] - guide.ephemeral-interruption: [guide.ephemeral-project, guide.interruption-resume, guide.zero-residue] -outcomes: - - id: guide.editorial-lifecycle - kind: required - description: Dynamic context, proposal, decision, estimate, writing, independent editorial and technical review, reporting, settlement, and cleanup are exact and governed. - evidenceKinds: [redacted_cli_transcript, workflow_graph, treedx_read_back] - authoritativeSubjects: [proposalRevision, decision, workday, summaryRef] - - id: guide.semantic-content-outcome - kind: required - description: Intended Guide pages, claims, relationships, navigation placement, receipts, and signals exist at the observed target ref. - evidenceKinds: [semantic_content_assertions, mutation_receipt, repository_read_back] - authoritativeSubjects: [contentArtifacts, integratedRef, targetRef] - - id: guide.ephemeral-baseline - kind: required - variants: [baseline] - description: The baseline run uses one isolated ephemeral Guide project. - evidenceKinds: [project_inventory, cleanup] - authoritativeSubjects: [ephemeralProject, targetRef] - - id: guide.canonical-integration - kind: required - variants: [clean-repeat] - description: The clean repeat integrates the intended outcome into the canonical Guide project. - evidenceKinds: [project_inventory, repository_read_back] - authoritativeSubjects: [canonicalProject, targetRef] - - id: guide.ephemeral-interruption - kind: required - variants: [interruption-resume] - description: The interruption run uses a second isolated ephemeral Guide project and resumes without residue. - evidenceKinds: [project_inventory, replay_trace, cleanup] - authoritativeSubjects: [ephemeralProject, targetRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.portability.project-fork.920] } -actors: { allowed: [capacity_operator, simulated_human], forbidden: [anonymous_user, unauthorized_user] } -devices: { required: [] } -gates: [core] -preconditions: { fixtures: [ephemeral_guide_project, canonical_guide_project] } -api: { required: true, verifierRefs: [market.agent-catalog.golden-live-proof] } -content: { required: true, verifierRefs: [] } -audit: { required: true, verifierRefs: [] } -negativeCases: [] -evidence: { required: [verifier_evidence, redacted_cli_transcript] } -notes: ["Operational readiness begins only when this capability reaches active status."] diff --git a/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml deleted file mode 100644 index f7402527..00000000 --- a/packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml +++ /dev/null @@ -1,48 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.agent.system.source-golden.917 -journeyIndex: 917 -type: agent -subtype: system -journey: Prove bounded source development end to end -ownerPackage: "@treeseed/market" -surface: cli -summary: Authenticated CLI orchestration drives all six profiles through exact-ref source work, independent review, revision, integration, settlement, and cleanup. -status: planned -capabilityId: agent.system.source-golden -catalog: agent.system -activation: { minimumConsecutivePasses: 3, requiredVariants: [baseline, clean-repeat, interruption-resume], invalidateOnSourceChange: true } -proof: - requiredCommands: [governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.checkpoint-integrate, capacity.workday-summary, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - source.complete-governed-lifecycle: [source.planning, source.chat, source.estimating, source.acting, source.reviewing, source.reporting, source.simulated-human-transcript, source.settlement] - source.semantic-repository-outcome: [source.exact-local-ref, source.exact-remote-ref, source.behavior, source.verification, source.receipt, source.review, source.integration, source.zero-residue] - source.rejection-revision: [source.fixture-provenance, source.initial-rejection, source.real-codex-revision, source.distinct-final-reviewer, source.exact-revision-approval] -outcomes: - - id: source.complete-governed-lifecycle - kind: required - description: Proposal, simulated-human decision, estimate, accepted plan, acting, review, report, and settlement use exact refs and authenticated CLI operations. - evidenceKinds: [redacted_cli_transcript, workflow_graph] - authoritativeSubjects: [proposalRevision, decision, capacityPlan, workday, targetRef] - - id: source.semantic-repository-outcome - kind: required - description: Required behavior exists at exact local and remote refs with verification, receipts, review, integration, and zero residue. - evidenceKinds: [git_read_back, verification, mutation_receipt, cleanup] - authoritativeSubjects: [checkpointRef, reviewedRef, integratedRef, remoteRef] - - id: source.rejection-revision - kind: required - variants: [interruption-resume] - description: The interruption variant rejects a pre-seeded deficient checkpoint, real Codex revises it, and a distinct reviewer approves the revision. - evidenceKinds: [fixture_provenance, review_read_back, revised_diff] - authoritativeSubjects: [deficientCheckpointRef, rejectionRef, revisedCheckpointRef, approvalRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.lifecycle.simulation-upstream-isolation.919] } -actors: { allowed: [capacity_operator, simulated_human], forbidden: [anonymous_user, unauthorized_user] } -devices: { required: [] } -gates: [core] -preconditions: { fixtures: [bounded_source_project] } -api: { required: true, verifierRefs: [market.agent-catalog.golden-live-proof] } -content: { required: true, verifierRefs: [] } -audit: { required: true, verifierRefs: [] } -negativeCases: [] -evidence: { required: [verifier_evidence, redacted_cli_transcript] } -notes: ["The deficient checkpoint is fixture evidence and is never attributed to an agent."] diff --git a/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml b/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml deleted file mode 100644 index 4a913839..00000000 --- a/packages/market-guarantee-catalog/guarantees/capacity/research/verify-autonomous-cited-research-starter.guarantee.yaml +++ /dev/null @@ -1,65 +0,0 @@ -schemaVersion: treeseed.guarantee/v2 -id: guarantee.capacity.research.verify-autonomous-cited-research-starter.510 -journeyIndex: 510 -type: capacity -subtype: research -journey: Verify Autonomous Cited Research Starter -ownerPackage: "@treeseed/market" -surface: agent-runtime -summary: "Prove the reconciled research starter autonomously decomposes a question, applies source policy, gathers independent evidence, rejects an unsupported claim, revises it, preserves contradiction, publishes cited knowledge, reports the workday, settles usage, and cleans up." -status: planned -capabilityId: agent.system.research-golden -catalog: agent.system -activation: { minimumConsecutivePasses: 3, requiredVariants: [baseline, clean-repeat, interruption-resume], invalidateOnSourceChange: true } -proof: - requiredCommands: [governance.proposal-show, capacity.decision-planning, capacity.capacity-plan, capacity.assignment, capacity.workday-summary, platform.status] - minimumRepositoryPostconditions: 1 - outcomePredicates: - research.governed-synthesis: [research.dynamic-context, research.two-independent-sources, research.claim-synthesis, research.source-policy, research.unsupported-claim-denial] - research.review-and-publication: [research.initial-rejection, research.semantic-revision, research.independent-approval, research.cited-output, research.reporting, research.settlement, research.cleanup] -outcomes: - - id: research.governed-synthesis - kind: required - description: Real governed retrieval supplies at least two independent cited sources and unsupported claims are denied. - evidenceKinds: [retrieval_receipt, citation_read_back, execution_trace] - authoritativeSubjects: [sourceRefs, claimArtifact] - - id: research.review-and-publication - kind: required - description: Rejection, semantic revision, independent approval, cited knowledge output, reporting, settlement, and cleanup use exact refs. - evidenceKinds: [review_read_back, repository_read_back, cleanup] - authoritativeSubjects: [rejectedCheckpointRef, approvedCheckpointRef, targetRef] -dependencies: { journeys: [], guarantees: [guarantee.agent.system.source-golden.917] } -actors: - allowed: [team_owner, capacity_provider, capacity_operator] - forbidden: [unapproved_capacity_provider, revoked_capacity_provider] -gates: [future] -preconditions: - fixtures: [integrated_treeseed_project] - notes: - - "The canonical local development stack and reconciled research starter TreeDX repository must be ready." -scene: - required: false -api: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -content: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -audit: - required: true - verifierRefs: [market.agent-catalog.golden-live-proof] -negativeCases: - - id: unsupported-material-claim-cannot-pass-review - actor: capacity_provider - verifierRefs: [market.agent-catalog.golden-live-proof] - - id: research-cannot-bypass-source-policy - actor: capacity_provider - verifierRefs: [market.agent-catalog.golden-live-proof] -evidence: - required: [guarantee_report, verifier_evidence, api_verification_log, audit_event_id] -notes: - - "Reopened on 2026-07-20: scripted source and execution evidence was withdrawn. Reactivate only after governed real-source collection and the complete real-provider revision workflow pass." - - "The verifier requires all four starter roles, every canonical stage with one settled assignment per attempt, two independent citations with hashes and retrieval metadata, rejection and at least one revision, repeated revision/review when approval is withheld, cited publication only after approval, Reporter completion, continuous access-token refresh, and terminal cleanup." -run: - timeoutSeconds: 14400 - requiredForRelease: false diff --git a/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml b/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml deleted file mode 100644 index 4abea416..00000000 --- a/packages/market-guarantee-catalog/guarantees/verifiers/service-workflows.verifiers.yaml +++ /dev/null @@ -1,70 +0,0 @@ -schemaVersion: treeseed.guarantee-verifiers/v1 -ownerPackage: "@treeseed/market" -verifiers: - market.portfolio.licensing: - kind: vitestCase - ownerPackage: "@treeseed/market" - testFile: tests/contract/architecture/portfolio-licensing.test.ts - timeoutSeconds: 60 - market.gateway.admin-route-inventory: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/gateway/admin-passthrough.test.ts - timeoutSeconds: 60 - market.gateway.private-workspace-overlay: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/seeds/managed-workspace-overlay.test.ts - timeoutSeconds: 60 - market.capacity.sdk-operator-contract: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/agent-capacity/capacity-operator-surface.test.ts - timeoutSeconds: 60 - market.capacity.sdk-configuration-contract: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/contract/agent-capacity/capacity-configuration.test.ts - timeoutSeconds: 60 - market.capacity.api-operator-contract: - kind: vitestCase - ownerPackage: "@treeseed/api" - testFile: tests/integration/repositories/capacity-operator-routes.test.ts - timeoutSeconds: 120 - market.capacity.api-descriptor-contract: - kind: vitestCase - ownerPackage: "@treeseed/api" - testFile: tests/contract/api/api-route-descriptors.test.ts - timeoutSeconds: 120 - market.capacity.cli-operator-contract: - kind: nodeScript - ownerPackage: "@treeseed/cli" - command: packages/cli/tests/contract/capacity/operator-parity.test.ts - timeoutSeconds: 120 - market.capacity.cli-secret-contract: - kind: nodeScript - ownerPackage: "@treeseed/cli" - command: packages/cli/tests/contract/capacity/output-security.test.ts - timeoutSeconds: 120 - market.capacity.full-local-lifecycle: - kind: packageScript - ownerPackage: "@treeseed/market" - command: guarantee:capacity-local-acceptance - timeoutSeconds: 7200 - market.capacity.failure-concurrency-matrix: - kind: vitestCase - ownerPackage: "@treeseed/market" - testFile: tests/integration/capacity/capacity-failure-concurrency-service-workflow.test.ts - testName: recovers interruption, fences stale leases, limits cross-project pressure, and preserves human policy - timeoutSeconds: 60 - market.agent-testing.production-lab-content: - kind: vitestCase - ownerPackage: "@treeseed/sdk" - testFile: tests/unit/scenes/agent-lab/agent-lab-contract.test.ts - timeoutSeconds: 120 - market.agent-catalog.golden-live-proof: - kind: nodeScript - ownerPackage: "@treeseed/market" - command: scripts/guarantees/verify-agent-capability.ts - timeoutSeconds: 7200 - resultSchema: treeseed.guarantee-verifier-result/v1 diff --git a/profiles/capacity-provider.yaml b/profiles/capacity-provider.yaml new file mode 100644 index 00000000..ac97bfce --- /dev/null +++ b/profiles/capacity-provider.yaml @@ -0,0 +1,5 @@ +schemaVersion: treeseed.platform-profile/v1 +id: capacity-provider +extends: [] +sources: { projects: [sdk, cli, agent, deployment] } +runtime: { targets: [capacity-provider.agent, capacity-provider.sandbox] } diff --git a/profiles/control-plane.yaml b/profiles/control-plane.yaml new file mode 100644 index 00000000..656d46da --- /dev/null +++ b/profiles/control-plane.yaml @@ -0,0 +1,6 @@ +schemaVersion: treeseed.platform-profile/v1 +id: control-plane +extends: [] +sources: { projects: [sdk, cli, ui, core, admin, api, reviewer, treedx, deployment] } +runtime: + targets: [control-plane.api, control-plane.postgres, control-plane.operations, control-plane.admin, control-plane.treedx, development.lab] diff --git a/profiles/core.yaml b/profiles/core.yaml new file mode 100644 index 00000000..ef614d3b --- /dev/null +++ b/profiles/core.yaml @@ -0,0 +1,6 @@ +schemaVersion: treeseed.platform-profile/v1 +id: core +extends: [] +sources: + projects: [platform, deployment, api, treedx, sdk, ui, cli, core, admin, agent, reviewer, template-engineering, template-research, market, market-api, skill] +runtime: { targets: [released.all] } diff --git a/profiles/treeai.yaml b/profiles/treeai.yaml new file mode 100644 index 00000000..46588520 --- /dev/null +++ b/profiles/treeai.yaml @@ -0,0 +1,7 @@ +schemaVersion: treeseed.platform-profile/v1 +id: treeai +extends: [] +sources: { projects: [sdk, cli, api, admin, agent, reviewer, treedx, deployment] } +runtime: + targets: [treeai.inference, treeai.training, treeai.lab] + defaultEnabled: false diff --git a/scenes/team-project-portfolio-demo.yaml b/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 91df691d..00000000 --- a/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev session start development.acceptance.session.yaml --actor scene-runner --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/scripts/guarantees/agent-catalog/cli-runtime.ts b/scripts/guarantees/agent-catalog/cli-runtime.ts deleted file mode 100644 index 7dd0482c..00000000 --- a/scripts/guarantees/agent-catalog/cli-runtime.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { spawnSync } from 'node:child_process'; -import { resolve } from 'node:path'; - -export type ProofCommandResult = { - id:string;args:string[];exitCode:number;payload:Record;stdout:string;stderr:string; -}; - -export function runProofCli(workspaceRoot:string,id:string,args:string[]):ProofCommandResult { - const result=spawnSync(process.execPath,[resolve(workspaceRoot,'packages/cli/dist/cli/main.js'),...args,'--json'],{ - cwd:workspaceRoot,env:process.env,encoding:'utf8',maxBuffer:20*1024*1024, - }); - let payload:Record={}; - try { const start=result.stdout.indexOf('{'); payload=JSON.parse(result.stdout.slice(start)) as Record; } catch { /* raw output remains evidence */ } - return {id,args,exitCode:result.status??1,payload,stdout:result.stdout,stderr:result.stderr}; -} - -export function redactProofValue(value:unknown):unknown { - if(Array.isArray(value)) return value.map(redactProofValue); - if(value&&typeof value==='object') return Object.fromEntries(Object.entries(value as Record).map(([key,entry])=>[ - key,/secret|token|password|authorization|cookie|private.?key/iu.test(key)?'':redactProofValue(entry), - ])); - if(typeof value==='string') return value.replace(/Bearer\s+[^\s"']+/giu,'Bearer '); - return value; -} - -export function redactProofArgs(args:string[]) { - let redactNext=false; - return args.map((value)=>{ - if(redactNext) { redactNext=false; return ''; } - if(/^--(?:document|password|secret|token|authorization|private-key)$/iu.test(value)) redactNext=true; - return value; - }); -} diff --git a/scripts/guarantees/agent-catalog/json-evidence.ts b/scripts/guarantees/agent-catalog/json-evidence.ts deleted file mode 100644 index aa15fe78..00000000 --- a/scripts/guarantees/agent-catalog/json-evidence.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { AgentGuaranteeProofPredicate,AgentGuaranteeProofValueRef } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import type { ProofCommandResult } from './cli-runtime.ts'; - -function children(value:unknown,token:string):unknown[] { - const wildcard=token.endsWith('[*]'); const key=wildcard?token.slice(0,-3):token; - const indexed=wildcard?null:key.match(/^(.*)\[(\d+)\]$/u); - if(indexed) { - const selected=indexed[1] ? (value&&typeof value==='object'&&!Array.isArray(value)?(value as Record)[indexed[1]]:undefined) : value; - return Array.isArray(selected)?[selected[Number(indexed[2])]]:[]; - } - const selected=key ? (value&&typeof value==='object'&&!Array.isArray(value)?(value as Record)[key]:undefined) : value; - return wildcard ? (Array.isArray(selected)?selected:[]) : [selected]; -} - -export function evidenceValues(results:Map,ref:AgentGuaranteeProofValueRef):unknown[] { - let values:unknown[]=[results.get(ref.commandId)?.payload]; - for(const token of ref.path.split('.').filter(Boolean)) values=values.flatMap((value)=>children(value,token)); - return values.filter((value)=>value!==undefined); -} - -function normalized(value:unknown){ return JSON.stringify(value); } -function expectedValue(results:Map,predicate:AgentGuaranteeProofPredicate):unknown { - if(predicate.expectedRef) { const values=evidenceValues(results,predicate.expectedRef); return values.length===1?values[0]:values; } - return predicate.expected; -} - -export function evaluatePredicate(results:Map,predicate:AgentGuaranteeProofPredicate) { - const values=evidenceValues(results,predicate); const expected=expectedValue(results,predicate); - let passed=false; - if(predicate.operator==='exists') passed=values.some((value)=>value!==null&&value!==''&&(!Array.isArray(value)||value.length>0)); - if(predicate.operator==='equals') passed=values.length>0&&values.every((value)=>normalized(value)===normalized(expected)); - if(predicate.operator==='not-equals') passed=values.length>0&&values.every((value)=>normalized(value)!==normalized(expected)); - if(predicate.operator==='includes') passed=values.length>0&&values.every((value)=>typeof value==='string'?value.includes(String(expected)):Array.isArray(value)&&value.some((entry)=>normalized(entry)===normalized(expected))); - if(predicate.operator==='matches') { try { const pattern=new RegExp(String(expected),'u'); passed=values.length>0&&values.every((value)=>pattern.test(String(value))); } catch { passed=false; } } - if(predicate.operator==='length-at-least') passed=values.length>0&&values.every((value)=>(typeof value==='string'||Array.isArray(value))&&value.length>=Number(expected)); - if(predicate.operator==='distinct') { const flattened=values.flatMap((value)=>Array.isArray(value)?value:[value]).filter((value)=>value!==null&&value!==''); passed=flattened.length>=2&&new Set(flattened.map(normalized)).size===flattened.length; } - return {passed,diagnostic:passed?'':`${predicate.id} failed: ${predicate.path} ${predicate.operator} ${normalized(expected)}; observed ${normalized(values)}.`}; -} - -export function scalarEvidence(results:Map,ref:AgentGuaranteeProofValueRef) { - const values=evidenceValues(results,ref).flatMap((value)=>Array.isArray(value)?value:[value]).filter((value)=>value!==undefined&&value!==null&&value!==''); - return values.length===1?String(values[0]):values.map(String).join(','); -} diff --git a/scripts/guarantees/agent-catalog/proof-executor.ts b/scripts/guarantees/agent-catalog/proof-executor.ts deleted file mode 100644 index 516cfbee..00000000 --- a/scripts/guarantees/agent-catalog/proof-executor.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { mkdirSync,writeFileSync } from 'node:fs'; -import { relative,resolve } from 'node:path'; -import type { AgentGuaranteeProofInput,GuaranteeVerifierResult } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import { redactProofArgs,redactProofValue,runProofCli,type ProofCommandResult } from './cli-runtime.ts'; -import { evidenceValues,evaluatePredicate,scalarEvidence } from './json-evidence.ts'; - -const numberEvidence=(results:Map,ref:Parameters[1])=>Number(evidenceValues(results,ref)[0]??Number.NaN); -const booleanEvidence=(results:Map,ref:Parameters[1])=>evidenceValues(results,ref)[0]===true; - -export function executeProof(input:{workspaceRoot:string;outputRoot:string;guaranteeId:string;sourceGeneration:string;proof:AgentGuaranteeProofInput}) : GuaranteeVerifierResult { - const evidenceRoot=resolve(input.outputRoot,'agent-catalog',input.proof.capabilityId.replaceAll('.','-')); - mkdirSync(evidenceRoot,{recursive:true}); - const results=new Map(); const evidenceByCommand=new Map(); - for(const command of input.proof.commands) { - const result=runProofCli(input.workspaceRoot,command.id,command.args); results.set(command.id,result); - const path=resolve(evidenceRoot,`${command.id}.json`); - writeFileSync(path,`${JSON.stringify(redactProofValue({command:['trsd',...redactProofArgs(command.args)],expectedExitCode:command.expectedExitCode,exitCode:result.exitCode,payload:result.payload}),null,2)}\n`); - evidenceByCommand.set(command.id,relative(input.workspaceRoot,path).replaceAll('\\','/')); - } - const assertions=input.proof.outcomes.map((outcome)=>{ - const commandFailures=outcome.evidenceCommands.filter((id)=>{ - const command=input.proof.commands.find((entry)=>entry.id===id); return !command||results.get(id)?.exitCode!==command.expectedExitCode; - }); - const predicateResults=outcome.predicates.map((predicate)=>evaluatePredicate(results,predicate)); - const diagnostics=[...commandFailures.map((id)=>`Command ${id} did not return its declared exit code.`),...predicateResults.filter((entry)=>!entry.passed).map((entry)=>entry.diagnostic)]; - return {id:outcome.outcomeId,status:diagnostics.length?'failed' as const:'passed' as const,evidence:outcome.evidenceCommands.map((id)=>evidenceByCommand.get(id)!).filter(Boolean),entityRefs:Object.fromEntries(Object.entries(outcome.entityRefs).map(([key,value])=>[key,scalarEvidence(results,value)])),diagnostics}; - }); - const repositoryPostconditions=input.proof.repositoryPostconditions.map((entry)=>({ - repository:entry.repository,baseRef:scalarEvidence(results,entry.baseRef),effectiveRef:scalarEvidence(results,entry.effectiveRef),...(entry.targetRef?{targetRef:scalarEvidence(results,entry.targetRef)}:{}),changedPaths:evidenceValues(results,entry.changedPaths).flatMap((value)=>Array.isArray(value)?value:[value]).map(String),readBackVerified:booleanEvidence(results,entry.readBackVerified), - })); - const cleanup=input.proof.cleanup; - return {schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId:input.guaranteeId,capabilityId:input.proof.capabilityId,variant:input.proof.variant,sourceGeneration:input.sourceGeneration,assertions,repositoryPostconditions,cleanup:{verified:booleanEvidence(results,cleanup.verified),activeAssignments:numberEvidence(results,cleanup.activeAssignments),activeLeases:numberEvidence(results,cleanup.activeLeases),activeReservations:numberEvidence(results,cleanup.activeReservations),activeDemands:numberEvidence(results,cleanup.activeDemands),activeWorkspaces:numberEvidence(results,cleanup.activeWorkspaces),activeWorktrees:numberEvidence(results,cleanup.activeWorktrees),unpublishedBranches:numberEvidence(results,cleanup.unpublishedBranches),staleAuthorities:numberEvidence(results,cleanup.staleAuthorities)},evidence:[...evidenceByCommand.values()]}; -} diff --git a/scripts/guarantees/agent-catalog/proof-input.ts b/scripts/guarantees/agent-catalog/proof-input.ts deleted file mode 100644 index 6f5c47cf..00000000 --- a/scripts/guarantees/agent-catalog/proof-input.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { existsSync,readFileSync } from 'node:fs'; -import { isAbsolute,relative,resolve } from 'node:path'; -import type { GuaranteeCatalogContract } from '../../../packages/sdk/src/guarantees/contracts/agent-guarantee-contracts.ts'; -import { parseAgentGuaranteeProofInput } from '../../../packages/sdk/src/guarantees/contracts/parse-agent-guarantee-proof.ts'; - -export function loadProofInput(input:{workspaceRoot:string;contract:GuaranteeCatalogContract;variant:string;sourceGeneration:string}) { - let state:Record={}; - try { state=JSON.parse(process.env.TREESEED_GUARANTEE_RUN_STATE??'{}') as Record; } catch { /* diagnosed below */ } - const configured=typeof state.agentProofInput==='string'?state.agentProofInput.trim():''; - if(!configured) return {ok:false as const,issues:['This capability requires --proof-input .']}; - const path=resolve(input.workspaceRoot,configured); const traversal=relative(input.workspaceRoot,path); - if(isAbsolute(configured)||traversal.startsWith('..')||isAbsolute(traversal)) return {ok:false as const,issues:['Proof input must be workspace-relative.']}; - if(!existsSync(path)) return {ok:false as const,issues:[`Proof input ${configured} does not exist.`]}; - let parsed:unknown; - try { parsed=JSON.parse(readFileSync(path,'utf8')); } catch(error) { return {ok:false as const,issues:[`Proof input is not valid JSON: ${error instanceof Error?error.message:String(error)}`]}; } - const result=parseAgentGuaranteeProofInput(parsed,input.contract,input.variant,input.sourceGeneration); - return result.ok?{ok:true as const,proof:result.proof,path}:{ok:false as const,issues:result.issues}; -} diff --git a/scripts/guarantees/verify-agent-capability.ts b/scripts/guarantees/verify-agent-capability.ts deleted file mode 100644 index 2bdec377..00000000 --- a/scripts/guarantees/verify-agent-capability.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { resolve } from 'node:path'; -import { spawnSync } from 'node:child_process'; -import { mkdirSync,writeFileSync } from 'node:fs'; -import { relative } from 'node:path'; -import { discoverGuarantees } from '../../packages/sdk/src/guarantees/index/parse-verifier-registry.ts'; -import { executeProof } from './agent-catalog/proof-executor.ts'; -import { loadProofInput } from './agent-catalog/proof-input.ts'; - -const workspaceRoot = resolve(process.cwd()); -const guaranteeId = process.env.TREESEED_GUARANTEE_ID?.trim() ?? ''; -const capabilityId = process.env.TREESEED_GUARANTEE_CAPABILITY_ID?.trim() ?? ''; -const sourceGeneration = process.env.TREESEED_GUARANTEE_SOURCE_GENERATION?.trim() ?? ''; -const variant = process.env.TREESEED_GUARANTEE_VARIANT?.trim() ?? ''; -const registry = discoverGuarantees({ workspaceRoot, filter: { ids: guaranteeId ? [guaranteeId] : [] } }); -const guarantee = registry.guarantees.find((entry) => entry.manifest?.id === guaranteeId)?.manifest; -if (!guarantee?.catalogContract || guarantee.catalogContract.capabilityId !== capabilityId) { - throw new Error('The requested canonical agent capability does not resolve to its exact v2 guarantee contract.'); -} - -function cli(args:string[]) { - const result=spawnSync(process.execPath,[resolve(workspaceRoot,'packages/cli/dist/cli/main.js'),...args,'--json'],{cwd:workspaceRoot,env:process.env,encoding:'utf8',maxBuffer:10*1024*1024,timeout:180_000,killSignal:'SIGTERM'}); - let payload:Record={}; - try { payload=JSON.parse(result.stdout.slice(result.stdout.indexOf('{'))) as Record; } catch { /* captured below */ } - return {args,exitCode:result.status??1,payload,stdout:result.stdout,stderr:`${result.stderr}${result.error?`\n${result.error.message}`:''}`,required:true}; -} - -function contextChecksReady(probe:ReturnType) { - return probe.exitCode===0&&/^[a-f0-9]{40}$/u.test(String(probe.payload.definitionCommit??'')) - &&Array.isArray(probe.payload.tests)&&probe.payload.tests.length>0 - &&Array.isArray(probe.payload.definitions)&&probe.payload.definitions.length>0 - &&Array.isArray(probe.payload.unpublishedAuthoring); -} - -function stableContextChecks(transcript:Array>,args:string[],minimumStableMs=0) { - const startedAt=Date.now(); let consecutive=0; let last:ReturnType|null=null; - for(let attempt=0;attempt<40;attempt+=1) { - const probe=cli(args); - last=probe; consecutive=contextChecksReady(probe)?consecutive+1:0; - const stable=Date.now()-startedAt>=minimumStableMs&&consecutive>=3; - const terminal=stable||attempt===39; - transcript.push({...probe,required:terminal,recoveryProbe:true,attempt:attempt+1}); - if(stable) return probe; - Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,750); - } - return last!; -} - -function containsResultPayload(value:unknown):boolean { - if(Array.isArray(value)) return value.some(containsResultPayload); - if(!value||typeof value!=='object') return false; - return Object.entries(value as Record).some(([key,entry])=>key==='result'||containsResultPayload(entry)); -} - -function redact(value:unknown):unknown { - if(Array.isArray(value)) return value.map(redact); - if(value&&typeof value==='object') return Object.fromEntries(Object.entries(value as Record).map(([key,entry])=>[/secret|token|password|authorization|cookie/iu.test(key)?key:key,/secret|token|password|authorization|cookie/iu.test(key)?'':redact(entry)])); - if(typeof value==='string') return value.replace(/Bearer\s+[^\s"']+/giu,'Bearer '); - return value; -} - -function contextReadinessProof() { - const team=process.env.TREESEED_AGENT_GUARANTEE_TEAM?.trim()||'treeseed'; - const market=process.env.TREESEED_AGENT_GUARANTEE_MARKET?.trim()||'local'; - const projectSelector=process.env.TREESEED_AGENT_GUARANTEE_PROJECT?.trim()||'market'; - const transcript:Array>=[]; - const projects=cli(['projects','list','--market',market]); transcript.push(projects); - const projectRows=Array.isArray(projects.payload.projects)?projects.payload.projects.filter((entry):entry is Record=>Boolean(entry&&typeof entry==='object')):[]; - const selectedProject=projectRows.find((entry)=>entry.id===projectSelector||entry.slug===projectSelector); - const project=String(selectedProject?.id??''); - const exactTeam=String(selectedProject?.teamId??team); - const checksArgs=['capacity','context-query-checks','--market',market,'--team',exactTeam,'--project',project]; - const before=project?stableContextChecks(transcript,checksArgs):{args:['capacity','context-query-checks'],exitCode:1,payload:{},stdout:'',stderr:`Project ${projectSelector} was not found.`,required:true}; - if(!project) transcript.push(before); - const tests=Array.isArray(before.payload.tests)?before.payload.tests.filter((entry):entry is Record=>Boolean(entry&&typeof entry==='object'&&Array.isArray((entry as Record).requiredBy)&&((entry as Record).requiredBy as unknown[]).length>0)):[]; - for(const [index,test] of tests.entries()) { - const id=String(test.id??''); if(!id) continue; - transcript.push(cli(['capacity','context-query-test','--market',market,'--team',exactTeam,'--project',project,'--agent-test',id,'--idempotency-key',`guarantee:${sourceGeneration}:${variant}:${id}`])); - if(variant==='interruption-resume'&&index===0) { - transcript.push(cli(['dev','restart','--app','api'])); - stableContextChecks(transcript,checksArgs,15_000); - } - } - const after=project?stableContextChecks(transcript,checksArgs):before; - const outputRoot=resolve(process.env.TREESEED_GUARANTEE_OUTPUT_ROOT||'.treeseed/guarantees/unscoped'); - mkdirSync(resolve(outputRoot,'agent-catalog'),{recursive:true}); - const transcriptPath=resolve(outputRoot,'agent-catalog','dynamic-context-transcript.json'); - writeFileSync(transcriptPath,`${JSON.stringify(redact(transcript.map(({args,exitCode,payload,stderr,required,recoveryProbe,attempt})=>({command:['trsd',...(args as string[])],exitCode,payload,stderr,required,recoveryProbe,attempt}))),null,2)}\n`); - const evidencePath=relative(workspaceRoot,transcriptPath).replaceAll('\\','/'); - const requiredTests=Array.isArray(after.payload.tests)?after.payload.tests.filter((entry)=>Array.isArray((entry as Record)?.requiredBy)&&((entry as {requiredBy:unknown[]}).requiredBy.length>0)):[]; - const passingTests=requiredTests.length>0&&requiredTests.every((entry)=>Boolean((entry as Record)?.readiness&&((entry as {readiness?:{selectable?:unknown}}).readiness?.selectable===true))); - const requiredDefinitions=Array.isArray(after.payload.definitions)?after.payload.definitions.filter((entry)=>Array.isArray((entry as Record)?.requiredBy)&&((entry as {requiredBy:unknown[]}).requiredBy.length>0)):[]; - const selectableDefinitions=requiredDefinitions.length>0&&requiredDefinitions.every((entry)=>((entry as {readiness?:{selectable?:unknown}}).readiness?.selectable===true)); - const commandsPassed=transcript.filter((entry)=>entry.required!==false).every((entry)=>entry.exitCode===0); - const noResultsPersisted=!transcript.filter((entry)=>entry.args[0]==='capacity'&&String(entry.args[1]).startsWith('context-query')).some((entry)=>containsResultPayload(entry.payload)); - const definitionCommit=String(after.payload.definitionCommit??''); - const authoringIdentity=(entry:unknown)=>entry&&typeof entry==='object'?`${String((entry as Record).commitSha??'')}:${String((entry as Record).ref??'')}`:''; - const afterAuthoring=Array.isArray(after.payload.unpublishedAuthoring)?after.payload.unpublishedAuthoring.map(authoringIdentity).filter(Boolean):[]; - return { - schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId,capabilityId,variant,sourceGeneration, - assertions:[ - {id:'context.current-results',status:commandsPassed&&passingTests&&selectableDefinitions?'passed':'failed',evidence:[evidencePath],entityRefs:{queryRevision:tests.map((test)=>`${String(test.definitionId)}@${String(test.definitionRevision)}`).join(','),observedSourceRef:definitionCommit},diagnostics:commandsPassed?[]:['One or more authenticated CLI query checks failed.']}, - {id:'context.results-not-persisted',status:noResultsPersisted?'passed':'failed',evidence:[evidencePath],entityRefs:{checkRecord:(Array.isArray(after.payload.items)?after.payload.items:[]).map((item)=>String((item as Record).id??'')).filter(Boolean).join(',')}}, - ],repositoryPostconditions:[], - cleanup:{verified:commandsPassed&&afterAuthoring.length===0,activeAssignments:0,activeLeases:0,activeReservations:0,activeDemands:0,activeWorkspaces:0,activeWorktrees:0,unpublishedBranches:afterAuthoring.length,staleAuthorities:0}, - evidence:[evidencePath], - }; -} - -if(capabilityId==='agent.context.dynamic-readiness') { - process.stdout.write(`${JSON.stringify(contextReadinessProof(),null,2)}\n`); - process.exit(0); -} - -const loaded=loadProofInput({workspaceRoot,contract:guarantee.catalogContract,variant,sourceGeneration}); -if(!loaded.ok) { - process.stdout.write(`${JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',guaranteeId,capabilityId,variant,sourceGeneration,assertions:guarantee.catalogContract.outcomes.map((outcome)=>({id:outcome.id,status:'blocked',evidence:[],diagnostics:loaded.issues})),repositoryPostconditions:[],cleanup:{verified:false,activeAssignments:-1,activeLeases:-1,activeReservations:-1,activeDemands:-1,activeWorkspaces:-1,activeWorktrees:-1,unpublishedBranches:-1,staleAuthorities:-1},evidence:[]},null,2)}\n`); - process.exit(0); -} -process.stdout.write(`${JSON.stringify(executeProof({workspaceRoot,outputRoot:resolve(process.env.TREESEED_GUARANTEE_OUTPUT_ROOT||'.treeseed/guarantees/unscoped'),guaranteeId,sourceGeneration,proof:loaded.proof}),null,2)}\n`); diff --git a/scripts/plan-composition-guarantees.mjs b/scripts/plan-composition-guarantees.mjs deleted file mode 100644 index 7cd62f79..00000000 --- a/scripts/plan-composition-guarantees.mjs +++ /dev/null @@ -1,175 +0,0 @@ -import { createHash } from 'node:crypto'; -import { execFileSync } from 'node:child_process'; -import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { relative, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); - -function option(name, fallback) { - const index = process.argv.indexOf(`--${name}`); - return index >= 0 ? process.argv[index + 1] : fallback; -} - -function csvOption(name) { - return new Set(String(option(name, '')).split(',').map((entry) => entry.trim()).filter(Boolean)); -} - -function verifierRefs(value, out = new Set()) { - if (Array.isArray(value)) for (const entry of value) verifierRefs(entry, out); - else if (value && typeof value === 'object') for (const [key, entry] of Object.entries(value)) { - if (key === 'verifierRefs' && Array.isArray(entry)) for (const id of entry) out.add(String(id)); - else verifierRefs(entry, out); - } - return out; -} - -function guaranteeVerifierRefs(manifest) { - const refs = verifierRefs(manifest); - if (manifest?.scene?.required === true && manifest.scene.executionKey) refs.add(String(manifest.scene.executionKey)); - for (const negative of manifest?.negativeCases ?? []) { - if (negative?.scene?.executionKey) refs.add(String(negative.scene.executionKey)); - } - return refs; -} - -function sceneVerifierRefs(manifest) { - return [manifest?.scene?.required === true ? manifest.scene.executionKey : null, - ...(manifest?.negativeCases ?? []).map((entry) => entry?.scene?.executionKey)].filter(Boolean).map(String); -} - -function dependencyIds(manifest) { - return Array.isArray(manifest?.dependencies?.guarantees) ? manifest.dependencies.guarantees.map(String) : []; -} - -async function materializePackage(payload, temporary) { - let body; - if (payload.artifact.url.startsWith('file:')) body = readFileSync(fileURLToPath(payload.artifact.url)); - else { - const response = await fetch(payload.artifact.url); - if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); - body = Buffer.from(await response.arrayBuffer()); - } - const digest = createHash('sha256').update(body).digest('hex'); - if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); - const archive = resolve(temporary, `${payload.id}.tgz`); - const output = resolve(temporary, payload.id); - writeFileSync(archive, body); - execFileSync('mkdir', ['-p', output]); - execFileSync('tar', ['-xzf', archive, '-C', output]); - return resolve(output, 'package'); -} - -function diagnostic(code, message, detail = {}) { - return { severity: 'error', code, message, ...detail }; -} - -const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); -const ownerFilter = option('owner-package', '@treeseed/admin'); -const types = new Set(String(option('types', 'user,team')).split(',').map((entry) => entry.trim()).filter(Boolean)); -const statuses = new Set(String(option('statuses', 'active')).split(',').map((entry) => entry.trim()).filter(Boolean)); -const guaranteeOwners = csvOption('guarantee-owner-package'); -const subtypes = csvOption('subtypes'); -const gates = csvOption('gates'); -const ids = csvOption('ids'); -const journeyIndexes = csvOption('journey-indexes'); -const includeDependencies = !process.argv.includes('--no-dependencies'); -const release = JSON.parse(readFileSync(releasePath, 'utf8')); -const payload = release.hostPayloads?.find((entry) => entry.packageName === ownerFilter); -if (!payload) throw new Error(`Composition ${release.release} does not select ${ownerFilter}.`); -const payloadsByPackage = new Map((release.hostPayloads ?? []).map((entry) => [entry.packageName, entry])); - -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-')); -try { - const packageRoot = await materializePackage(payload, temporary); - const catalogPath = resolve(packageRoot, 'dist/standards/guarantee-catalog.json'); - const diagnostics = []; - if (!existsSync(catalogPath)) diagnostics.push(diagnostic( - 'guarantee.catalog_missing_from_artifact', - `${ownerFilter}@${payload.version} does not contain its package-owned guarantees.`, - { artifact: payload.artifact.url }, - )); - let catalog = null; - try { if (existsSync(catalogPath)) catalog = JSON.parse(readFileSync(catalogPath, 'utf8')); } - catch (error) { diagnostics.push(diagnostic('guarantee.invalid_catalog', error instanceof Error ? error.message : String(error))); } - if (catalog && catalog.schemaVersion !== 'treeseed.guarantee-catalog/v1') diagnostics.push(diagnostic('guarantee.invalid_catalog', 'Packed guarantee catalog has an unsupported schema version.')); - const loaded = Array.isArray(catalog?.guarantees) ? catalog.guarantees.map((entry) => ({ path: resolve(packageRoot, entry.sourcePath), manifest: entry.manifest })) : []; - const byId = new Map(loaded.map((entry) => [String(entry.manifest.id ?? ''), entry])); - const selected = loaded.filter((entry) => statuses.has(String(entry.manifest.status)) && types.has(String(entry.manifest.type)) - && (!guaranteeOwners.size || guaranteeOwners.has(String(entry.manifest.ownerPackage))) - && (!subtypes.size || subtypes.has(String(entry.manifest.subtype))) - && (!gates.size || (entry.manifest.gates ?? []).some((gate) => gates.has(String(gate)))) - && (!ids.size || ids.has(String(entry.manifest.id))) - && (!journeyIndexes.size || journeyIndexes.has(String(entry.manifest.journeyIndex)))); - const closure = new Map(selected.map((entry) => [String(entry.manifest.id), { ...entry, selected: true }])); - const queue = [...selected]; - while (includeDependencies && queue.length) for (const dependency of dependencyIds(queue.shift().manifest)) { - if (closure.has(dependency)) continue; - const found = byId.get(dependency); - if (!found) diagnostics.push(diagnostic('guarantee.dependency_missing', `Guarantee dependency ${dependency} is absent from the packed catalog.`)); - else { closure.set(dependency, { ...found, selected: false }); queue.push(found); } - } - - const declared = {}; - const registrySources = {}; - for (const registry of catalog?.verifierRegistries ?? []) { - for (const [id, verifier] of Object.entries(registry?.document?.verifiers ?? {})) { - declared[id] = verifier; - registrySources[id] = registry.sourcePath; - } - } - const usedVerifierRefs = new Set(); - for (const entry of closure.values()) for (const ref of guaranteeVerifierRefs(entry.manifest)) { - usedVerifierRefs.add(ref); - const verifier = declared[ref]; - if (!verifier) diagnostics.push(diagnostic('guarantee.verifier_undeclared', `${entry.manifest.id} references undeclared verifier ${ref}.`)); - else if (!['artifact', 'catalogOperation'].includes(String(verifier.kind))) diagnostics.push(diagnostic( - 'guarantee.verifier_not_artifact_bound', - `${ref} uses ${verifier.kind}; exact compositions require an immutable artifact or catalog operation verifier.`, - { ownerPackage: verifier.ownerPackage, sourcePath: verifier.testFile ?? verifier.command ?? verifier.caseId }, - )); - } - for (const ref of usedVerifierRefs) { - const verifier = declared[ref]; - if (!verifier || !['artifact', 'catalogOperation'].includes(String(verifier.kind))) continue; - for (const field of verifier.kind === 'artifact' - ? ['ownerPackage', 'artifactId', 'entrypoint', 'caseId'] - : ['ownerPackage', 'operationId', 'caseId']) { - if (typeof verifier[field] !== 'string' || !verifier[field].trim()) diagnostics.push(diagnostic( - 'guarantee.verifier_field_missing', `${ref} is missing required ${field}.`, { verifierRef: ref, field }, - )); - } - if (!payloadsByPackage.has(verifier.ownerPackage)) diagnostics.push(diagnostic( - 'guarantee.verifier_payload_missing', `${ref} owner ${verifier.ownerPackage} is not selected as an exact host payload.`, - { verifierRef: ref, ownerPackage: verifier.ownerPackage }, - )); - if (verifier.kind === 'artifact' && (verifier.entrypoint.startsWith('/') || verifier.entrypoint.split('/').includes('..'))) diagnostics.push(diagnostic( - 'guarantee.verifier_entrypoint_unsafe', `${ref} has an unsafe artifact entrypoint.`, { verifierRef: ref, entrypoint: verifier.entrypoint }, - )); - } - - const results = [...closure.values()].map((entry) => ({ - id: String(entry.manifest.id), journey: String(entry.manifest.journey ?? entry.manifest.id), ownerPackage: String(entry.manifest.ownerPackage), - type: String(entry.manifest.type), subtype: String(entry.manifest.subtype), status: String(entry.manifest.status), selected: entry.selected, - dependency: !entry.selected, journeyIndex: entry.manifest.journeyIndex, gates: Array.isArray(entry.manifest.gates) ? entry.manifest.gates.map(String) : [], - releaseBlocking: entry.manifest.run?.requiredForRelease === true, - sourcePath: relative(packageRoot, entry.path).replaceAll('\\', '/'), sceneManifest: entry.manifest.scene?.manifest, - sceneVerifierRefs: sceneVerifierRefs(entry.manifest), - verifierRefs: [...guaranteeVerifierRefs(entry.manifest)].sort(), - })).sort((a, b) => a.id.localeCompare(b.id)); - const report = { - schemaVersion: 'treeseed.guarantee-plan/v1', ok: diagnostics.length === 0, - composition: { release: release.release, generation: release.generation, track: release.track }, - catalog: { packageName: ownerFilter, version: payload.version, artifact: payload.artifact }, - filter: { statuses: [...statuses], types: [...types], guaranteeOwners: [...guaranteeOwners], subtypes: [...subtypes], gates: [...gates], ids: [...ids], journeyIndexes: [...journeyIndexes], includeDependencies }, - counts: { selected: results.filter((entry) => entry.selected).length, withDependencies: results.length, errors: diagnostics.length }, - verifiers: [...usedVerifierRefs].sort().map((ref) => ({ ref, registrySource: registrySources[ref], definition: declared[ref] })), - payloads: [...new Set([...usedVerifierRefs].map((ref) => declared[ref]?.ownerPackage).filter(Boolean))].map((packageName) => payloadsByPackage.get(packageName)), - entries: results, results, diagnostics, - }; - process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); - process.exitCode = report.ok ? 0 : 1; -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/run-composition-guarantees.mjs b/scripts/run-composition-guarantees.mjs deleted file mode 100644 index 8cf895c5..00000000 --- a/scripts/run-composition-guarantees.mjs +++ /dev/null @@ -1,223 +0,0 @@ -import { createHash, randomUUID } from 'node:crypto'; -import { spawnSync } from 'node:child_process'; -import { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); - -function option(name, fallback) { - const index = process.argv.indexOf(`--${name}`); - return index >= 0 ? process.argv[index + 1] : fallback; -} - -function options(name) { - return process.argv.flatMap((entry, index) => entry === `--${name}` ? [process.argv[index + 1]] : []).filter(Boolean); -} - -function safePackagePath(packageName) { - if (!/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+$/iu.test(packageName)) throw new Error(`Unsafe package name ${packageName}.`); - return packageName.split('/'); -} - -function redact(value) { - return String(value ?? '') - .replace(/Bearer\s+[A-Za-z0-9._~-]+/giu, 'Bearer [REDACTED]') - .replace(/(?:confirm|reset)_[A-Za-z0-9_-]+/gu, '[REDACTED]') - .replace(/("(?:access_token|refresh_token|password|token)"\s*:\s*")[^"]+/giu, '$1[REDACTED]'); -} - -async function artifactBody(payload) { - if (payload.artifact.url.startsWith('file:')) return readFileSync(fileURLToPath(payload.artifact.url)); - const response = await fetch(payload.artifact.url); - if (!response.ok) throw new Error(`Artifact ${payload.id} returned HTTP ${response.status}.`); - return Buffer.from(await response.arrayBuffer()); -} - -async function materializePayloads(release, temporary) { - const nodeModules = resolve(temporary, 'node_modules'); - const roots = new Map(); - for (const payload of release.hostPayloads ?? []) { - const body = await artifactBody(payload); - const digest = createHash('sha256').update(body).digest('hex'); - if (digest !== payload.artifact.sha256) throw new Error(`Artifact ${payload.id} digest ${digest} does not match the composition.`); - const archive = resolve(temporary, `${payload.id}.tgz`); - const packageRoot = resolve(nodeModules, ...safePackagePath(payload.packageName)); - mkdirSync(packageRoot, { recursive: true }); - writeFileSync(archive, body); - const unpacked = spawnSync('tar', ['-xzf', archive, '-C', packageRoot, '--strip-components=1'], { encoding: 'utf8' }); - if (unpacked.status !== 0) throw new Error(`Unable to unpack ${payload.id}: ${redact(unpacked.stderr)}`); - roots.set(payload.packageName, packageRoot); - } - return { nodeModules, roots }; -} - -function parseReport(stdout, definition) { - let report; - try { report = JSON.parse(stdout.trim()); } - catch { throw new Error(`${definition.artifactId} did not emit one JSON verifier result.`); } - if (report?.schemaVersion !== 'treeseed.guarantee-verifier-result/v1' || !Array.isArray(report.checks)) { - throw new Error(`${definition.artifactId} emitted an unsupported verifier result.`); - } - return report; -} - -function verifierCheck(report, caseId) { - const exact = report?.checks?.find((candidate) => candidate.id === caseId); - if (exact) return exact; - const scoped = report?.checks?.filter((candidate) => candidate.id.endsWith(`:${caseId}`)) ?? []; - return scoped.length === 1 ? scoped[0] : undefined; -} - -function verifierArgs({ adminPackageRoot, apiOrigin, mailpitOrigin, adminOrigin, runId, evidenceRoot } = {}) { - const args = [ - '--api-origin', apiOrigin ?? option('api-origin', 'http://api:3000'), - '--mailpit-origin', mailpitOrigin ?? option('mailpit-origin', 'http://mailpit:8025'), - '--admin-origin', adminOrigin ?? option('admin-origin', 'https://admin.treeseed.localhost'), - ]; - if (runId) args.push('--run-id', runId); - if (evidenceRoot) args.push('--evidence-root', evidenceRoot); - for (const name of ['device', 'scene-artifacts']) if (option(name, '')) args.push(`--${name}`, option(name, '')); - if (adminPackageRoot) args.push('--admin-package-root', adminPackageRoot); - args.push('--device-profile', option('device', 'desktop_chromium')); - return args; -} - -async function executeLocal(definition, packageRoot, roots, correlatedRunId, evidenceRoot) { - const entrypoint = resolve(packageRoot, definition.entrypoint); - if (!entrypoint.startsWith(`${packageRoot}/`) || !existsSync(entrypoint)) throw new Error(`Missing safe entrypoint ${definition.entrypoint}.`); - if (definition.exportName) { - const module = await import(`${pathToFileURL(entrypoint).href}?run=${randomUUID()}`); - if (typeof module[definition.exportName] !== 'function') throw new Error(`${definition.exportName} is not exported by ${definition.entrypoint}.`); - const report = await module[definition.exportName](); - return { report: parseReport(JSON.stringify(report), definition), execution: { mode: 'local-export' } }; - } - const child = spawnSync(process.execPath, [entrypoint, ...verifierArgs({ adminPackageRoot: roots.get('@treeseed/admin'), runId: correlatedRunId, evidenceRoot })], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); - const report = parseReport(redact(child.stdout), definition); - if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); - return { report, execution: { mode: 'local-process', exitCode: child.status } }; -} - -function containerMap() { - return new Map(options('container').map((entry) => { - const separator = entry.indexOf('='); - if (separator < 1) throw new Error(`Invalid --container mapping ${entry}.`); - return [entry.slice(0, separator), entry.slice(separator + 1)]; - })); -} - -function executeInContainer(definition, container, nodeModules, runId) { - if (!/^[A-Za-z0-9_.-]+$/u.test(container)) throw new Error(`Unsafe container name ${container}.`); - const target = `/app/.treeseed-guarantees/${runId}`; - const packagePath = `${target}/node_modules/${definition.ownerPackage}`; - try { - let child = spawnSync('docker', ['exec', container, 'mkdir', '-p', `${target}/node_modules`], { encoding: 'utf8' }); - if (child.status !== 0) throw new Error(redact(child.stderr)); - child = spawnSync('docker', ['cp', `${nodeModules}/.`, `${container}:${target}/node_modules`], { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); - if (child.status !== 0) throw new Error(redact(child.stderr)); - child = spawnSync('docker', ['exec', container, 'node', `${packagePath}/${definition.entrypoint}`, - ...verifierArgs({ adminPackageRoot: `${target}/node_modules/@treeseed/admin`, - apiOrigin: option('container-api-origin', 'http://api:3000'), - mailpitOrigin: option('container-mailpit-origin', 'http://mailpit:8025'), - adminOrigin: option('container-admin-origin', 'https://admin.treeseed.localhost'), runId })], { - encoding: 'utf8', maxBuffer: 10 * 1024 * 1024, - }); - const report = parseReport(redact(child.stdout), definition); - if (child.status !== 0 && report.ok) throw new Error(`${definition.artifactId} exited ${child.status}: ${redact(child.stderr)}`); - return { report, execution: { mode: 'component-container', container, exitCode: child.status } }; - } finally { - spawnSync('docker', ['exec', container, 'rm', '-rf', target], { encoding: 'utf8' }); - } -} - -function markdown(report) { - const rows = report.results.map((entry) => `| ${entry.status} | ${entry.id} | ${entry.verifierRefs.join(', ')} |`).join('\n'); - return `# TreeSeed composition guarantee run\n\n- Run: ${report.runId}\n- Composition: ${report.composition.release} generation ${report.composition.generation}\n- Result: ${report.ok ? 'PASS' : 'FAIL'}\n- Passed: ${report.counts.passed}\n- Failed: ${report.counts.failed}\n- Blocked: ${report.counts.blocked}\n\n| Status | Guarantee | Verifiers |\n| --- | --- | --- |\n${rows}\n`; -} - -const releasePath = resolve(root, option('release', 'deployment/integration-releases/development.json')); -const outputRoot = resolve(root, option('output', '.treeseed/guarantees/runs')); -const environment = option('environment', 'local'); -const runId = option('run-id', `${new Date().toISOString().replace(/[:.]/gu, '-')}-${randomUUID().slice(0, 8)}`); -const startedAt = new Date().toISOString(); -if (!/^[A-Za-z0-9_.-]+$/u.test(runId)) throw new Error('Run ID must be filesystem and container safe.'); -const release = JSON.parse(readFileSync(releasePath, 'utf8')); -const plannerArgs = [resolve(root, 'scripts/plan-composition-guarantees.mjs'), '--release', releasePath, - '--owner-package', option('owner-package', '@treeseed/admin'), '--types', option('types', 'user,team'), '--statuses', option('statuses', 'active')]; -for (const name of ['guarantee-owner-package', 'subtypes', 'gates', 'ids', 'journey-indexes']) if (option(name, '')) plannerArgs.push(`--${name}`, option(name, '')); -if (process.argv.includes('--no-dependencies')) plannerArgs.push('--no-dependencies'); -const planner = spawnSync(process.execPath, plannerArgs, - { cwd: root, encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }); -const plan = JSON.parse(planner.stdout); -const finalRoot = resolve(outputRoot, runId); -if (existsSync(finalRoot)) throw new Error(`Guarantee run ${runId} already exists.`); -const stagingRoot = resolve(outputRoot, `.${runId}.partial-${randomUUID()}`); -mkdirSync(resolve(stagingRoot, 'evidence'), { recursive: true }); -writeFileSync(resolve(stagingRoot, 'plan.json'), `${JSON.stringify(plan, null, 2)}\n`); - -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-')); -try { - const executions = new Map(); - if (plan.ok) { - const { nodeModules, roots } = await materializePayloads(release, temporary); - const containers = containerMap(); - for (const verifier of plan.verifiers) { - const definition = verifier.definition; - const key = JSON.stringify([definition.kind, definition.ownerPackage, definition.artifactId, definition.entrypoint, definition.exportName]); - const executionKey = createHash('sha256').update(key).digest('hex').slice(0, 16); - if (!executions.has(key)) { - try { - if (definition.kind !== 'artifact') throw new Error(`Catalog operation execution is not configured for ${verifier.ref}.`); - const container = containers.get(definition.ownerPackage); - const executed = container - ? executeInContainer(definition, container, nodeModules, runId) - : await executeLocal(definition, roots.get(definition.ownerPackage), roots, runId, resolve(stagingRoot, 'evidence', `${executionKey}-assets`)); - executions.set(key, executed); - } catch (error) { - executions.set(key, { error: redact(error instanceof Error ? error.message : error), execution: { mode: 'failed' } }); - } - } - const executed = executions.get(key); - verifier.executionKey = executionKey; - verifier.execution = executed.execution; - verifier.error = executed.error; - verifier.report = executed.report; - if (executed.report) writeFileSync(resolve(stagingRoot, 'evidence', `${verifier.executionKey}.json`), `${JSON.stringify(executed.report, null, 2)}\n`); - } - } - const verifierByRef = new Map(plan.verifiers.map((entry) => [entry.ref, entry])); - const results = plan.results.map((entry) => { - const checks = entry.verifierRefs.map((ref) => { - const verifier = verifierByRef.get(ref), definition = verifier?.definition; - const check = verifierCheck(verifier?.report, definition?.caseId); - return { ref, caseId: definition?.caseId, evidenceCheckId: check?.id, status: check?.status ?? 'blocked', error: verifier?.error ?? check?.error }; - }); - const status = checks.some((check) => check.status === 'failed') ? 'failed' - : checks.length > 0 && checks.every((check) => check.status === 'passed') ? 'passed' : 'blocked'; - const steps = checks.map((check) => { - const verifier = verifierByRef.get(check.ref); - const evidence = verifier?.executionKey ? [`evidence/${verifier.executionKey}.json`] : []; - const diagnostics = check.error ? [{ severity: 'error', code: 'guarantee.verifier_failed', message: check.error }] : []; - return { id: check.ref, kind: entry.sceneVerifierRefs?.includes(check.ref) ? 'scene' : 'verifier', status: check.status, summary: check.caseId ?? check.ref, evidence, diagnostics }; - }); - return { ...entry, status, checks, steps, diagnostics: steps.flatMap((step) => step.diagnostics), evidence: [...new Set(steps.flatMap((step) => step.evidence))] }; - }); - const counts = { passed: results.filter((entry) => entry.status === 'passed').length, - failed: results.filter((entry) => entry.status === 'failed').length, skipped: 0, - blocked: results.filter((entry) => entry.status === 'blocked').length, - releaseBlockingFailures: results.filter((entry) => entry.releaseBlocking && ['failed', 'blocked'].includes(entry.status)).length }; - const report = { schemaVersion: 'treeseed.guarantee-run/v1', runId, startedAt, completedAt: new Date().toISOString(), - ok: plan.ok && counts.failed === 0 && counts.blocked === 0, environment, composition: plan.composition, - source: { platform: release.platform, deployment: release.deployment, releasePath }, catalog: plan.catalog, filter: plan.filter, - payloads: plan.payloads, counts, results, diagnostics: plan.diagnostics, verifiers: plan.verifiers.map(({ report: _report, ...entry }) => entry) }; - writeFileSync(resolve(stagingRoot, 'report.json'), `${JSON.stringify(report, null, 2)}\n`); - writeFileSync(resolve(stagingRoot, 'report.md'), markdown(report)); - mkdirSync(dirname(finalRoot), { recursive: true }); - renameSync(stagingRoot, finalRoot); - process.stdout.write(`${JSON.stringify({ ok: report.ok, runId, runRoot: finalRoot, counts }, null, 2)}\n`); - process.exitCode = report.ok ? 0 : 1; -} finally { - rmSync(temporary, { recursive: true, force: true }); - if (existsSync(stagingRoot)) rmSync(stagingRoot, { recursive: true, force: true }); -} diff --git a/scripts/synchronize-capacity-provider-manifests.mjs b/scripts/synchronize-capacity-provider-manifests.mjs deleted file mode 100644 index 0d5586d2..00000000 --- a/scripts/synchronize-capacity-provider-manifests.mjs +++ /dev/null @@ -1,68 +0,0 @@ -import { readFileSync, writeFileSync } from 'node:fs'; -import { resolve } from 'node:path'; -import { parse, stringify } from 'yaml'; -import { - CORE_CAPABILITY_DEFINITIONS, - CORE_CAPABILITY_ONTOLOGY_GENERATION, - capabilityContractDigest, - capabilityOfferDigest, - capabilityOfferSchema, -} from '@treeseed/sdk/capacity-provider'; - -const root = resolve(import.meta.dirname, '..'); -const checkOnly = process.argv.includes('--check'); -const providerPath = resolve(root, 'treeseed.capacity-provider.yaml'); -const hostPaths = [ - resolve(root, 'deployment/host-configs/development-workstation.json'), - resolve(root, 'deployment/host-configs/capacity-provider-development.json'), -]; -const templateIds = ['platform-local-managed-codex', 'platform-local-managed-ai', 'platform-market-codex', 'platform-external-codex']; -const definitions = new Map(CORE_CAPABILITY_DEFINITIONS.map((definition) => [definition.id, definition])); -const reference = (id) => { - const definition = definitions.get(id); - if (!definition) throw new Error(`Provider offer references unknown core capability ${id}.`); - return { id: definition.id, version: definition.version, digest: definition.digest }; -}; -const emit = (path, content) => { - if (checkOnly) { - if (readFileSync(path, 'utf8') !== content) throw new Error(`${path.slice(root.length + 1)} is not synchronized with the active SDK capability ontology.`); - return; - } - writeFileSync(path, content); -}; - -function synchronizeOffer(offer) { - const capabilities = offer.capabilities.map(({ id }) => reference(id)); - const conformance = offer.conformance.map((entry) => { - const capability = reference(entry.capability.id); - return { ...entry, capability, evidenceDigest: capabilityContractDigest({ capability, tier: entry.tier, suite: entry.suite }) }; - }); - const { offerDigest: _oldDigest, ...rest } = offer; - const material = { ...rest, capabilities, conformance }; - return capabilityOfferSchema.parse({ ...material, offerDigest: capabilityOfferDigest(material) }); -} - -const provider = parse(readFileSync(providerPath, 'utf8')); -provider.schemaVersion = 5; -provider.configuration.generation = 'local-battery-v5'; -provider.ontology = { - generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, - digest: capabilityContractDigest({ generation: CORE_CAPABILITY_ONTOLOGY_GENERATION, definitions: CORE_CAPABILITY_DEFINITIONS }), -}; -for (const adapter of provider.adapters) adapter.offers = adapter.offers.map((binding) => ({ ...binding, offer: synchronizeOffer(binding.offer) })); -const canonicalProvider = stringify(provider, { lineWidth: 0 }); -emit(providerPath, canonicalProvider); -for (const templateId of templateIds) emit(resolve(root, 'templates', templateId, 'template/treeseed.capacity-provider.yaml'), canonicalProvider); - -for (const hostPath of hostPaths) { - const host = JSON.parse(readFileSync(hostPath, 'utf8')); - const embedded = structuredClone(provider); - const dedicated = host.host.role === 'capacity-provider'; - embedded.configuration.generation = dedicated ? 'managed-provider-development-v5' : 'managed-development-v5'; - embedded.identity.displayName = dedicated ? 'TreeSeed managed capacity provider' : 'TreeSeed managed development provider'; - embedded.metadata.custody = 'manager-owned'; - host.components.agent.configuration.files['treeseed.capacity-provider.yaml'] = stringify(embedded, { lineWidth: 0 }); - const enrollment = host.components.agent.configuration.providerEnrollment; - if (enrollment?.offer) enrollment.offer.capabilities = [...new Set(embedded.adapters.flatMap((adapter) => adapter.offers.flatMap((binding) => binding.offer.capabilities.map(({ id }) => id))))]; - emit(hostPath, `${JSON.stringify(host, null, 2)}\n`); -} diff --git a/scripts/test-composition-guarantee-plan.mjs b/scripts/test-composition-guarantee-plan.mjs deleted file mode 100644 index 343974a7..00000000 --- a/scripts/test-composition-guarantee-plan.mjs +++ /dev/null @@ -1,73 +0,0 @@ -import assert from 'node:assert/strict'; -import { createHash } from 'node:crypto'; -import { execFileSync, spawnSync } from 'node:child_process'; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-plan-test-')); - -function fixture(name, withCatalog) { - const source = resolve(temporary, `${name}-source/package`); - mkdirSync(source, { recursive: true }); - if (withCatalog) { - mkdirSync(resolve(source, 'dist/standards'), { recursive: true }); - writeFileSync(resolve(source, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ - schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, - guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { - schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', - ownerPackage: '@treeseed/admin', type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, - scene: { required: true, manifest: './example.scene.yaml', executionKey: 'admin.example.scene' }, - api: { required: true, verifierRefs: ['api.example'] }, - } }], - verifierRegistries: [{ sourcePath: 'guarantees/verifiers/legacy.verifiers.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', - verifiers: { 'api.example': { kind: 'nodeScript', ownerPackage: '@treeseed/admin', testFile: 'removed.ts' } }, - } }, { sourcePath: 'guarantees/verifiers/composition.verifiers.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', - verifiers: { - 'api.example': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'example' }, - 'admin.example.scene': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/example', entrypoint: 'dist/example.js', caseId: 'scene' }, - }, - } }], - })); - } - const archive = resolve(temporary, `${name}.tgz`); - execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, `${name}-source`), 'package']); - const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); - const release = resolve(temporary, `${name}.json`); - writeFileSync(release, JSON.stringify({ - schemaVersion: 'treeseed.integration-release/v1', release: name, generation: 1, track: 'development', - hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }], - })); - return release; -} - -function run(release, args = []) { - const result = spawnSync(process.execPath, ['scripts/plan-composition-guarantees.mjs', '--release', release, ...args], { cwd: root, encoding: 'utf8' }); - return { ...result, report: JSON.parse(result.stdout) }; -} - -try { - const accepted = run(fixture('accepted', true)); - assert.equal(accepted.status, 0); - assert.equal(accepted.report.ok, true); - assert.deepEqual(accepted.report.counts, { selected: 1, withDependencies: 1, errors: 0 }); - assert.equal(accepted.report.verifiers.length, 2); - assert.equal(accepted.report.verifiers[0].registrySource, 'guarantees/verifiers/composition.verifiers.yaml'); - assert.equal(accepted.report.verifiers[0].definition.kind, 'artifact'); - const focused = run(fixture('focused', true), ['--ids', 'guarantee.user.auth.example.001', '--no-dependencies']); - assert.equal(focused.status, 0); - assert.equal(focused.report.filter.includeDependencies, false); - assert.deepEqual(focused.report.filter.ids, ['guarantee.user.auth.example.001']); - - const missing = run(fixture('missing', false)); - assert.equal(missing.status, 1); - assert.equal(missing.report.ok, false); - assert.equal(missing.report.diagnostics[0].code, 'guarantee.catalog_missing_from_artifact'); - process.stdout.write(`${JSON.stringify({ ok: true, cases: 3 })}\n`); -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/test-composition-guarantee-run.mjs b/scripts/test-composition-guarantee-run.mjs deleted file mode 100644 index 0525994d..00000000 --- a/scripts/test-composition-guarantee-run.mjs +++ /dev/null @@ -1,52 +0,0 @@ -import assert from 'node:assert/strict'; -import { createHash } from 'node:crypto'; -import { execFileSync, spawnSync } from 'node:child_process'; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { pathToFileURL } from 'node:url'; - -const root = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-guarantee-run-test-')); - -try { - const packageRoot = resolve(temporary, 'source/package'); - mkdirSync(resolve(packageRoot, 'dist/standards'), { recursive: true }); - writeFileSync(resolve(packageRoot, 'dist/verifier.js'), `#!/usr/bin/env node\nconst fs=require('node:fs'); const value=name=>{const index=process.argv.indexOf('--'+name); return process.argv[index+1]}; const evidenceRoot=value('evidence-root'); fs.mkdirSync(evidenceRoot,{recursive:true}); fs.writeFileSync(evidenceRoot+'/marker.json',JSON.stringify({runId:value('run-id')})); process.stdout.write(JSON.stringify({schemaVersion:'treeseed.guarantee-verifier-result/v1',verifierId:'fixture',startedAt:new Date().toISOString(),completedAt:new Date().toISOString(),ok:true,checks:[{id:'desktop_chromium:fixture.case',status:'passed',durationMs:1}]}));\n`); - writeFileSync(resolve(packageRoot, 'dist/standards/guarantee-catalog.json'), JSON.stringify({ - schemaVersion: 'treeseed.guarantee-catalog/v1', package: { name: '@treeseed/admin', version: '1.0.0-rc.1' }, - guarantees: [{ sourcePath: 'guarantees/example.guarantee.yaml', manifest: { - schemaVersion: 'treeseed.guarantee/v1', id: 'guarantee.user.auth.example.001', journey: 'Example', ownerPackage: '@treeseed/admin', - type: 'user', subtype: 'auth', status: 'active', dependencies: { guarantees: [] }, api: { required: true, verifierRefs: ['fixture.verifier'] }, - } }], - verifierRegistries: [{ sourcePath: 'guarantees/verifiers/composition.yaml', document: { - schemaVersion: 'treeseed.guarantee-verifiers/v1', ownerPackage: '@treeseed/admin', verifiers: { - 'fixture.verifier': { kind: 'artifact', ownerPackage: '@treeseed/admin', artifactId: '@treeseed/admin/fixture', entrypoint: 'dist/verifier.js', caseId: 'fixture.case' }, - }, - } }], - })); - const archive = resolve(temporary, 'admin.tgz'); - execFileSync('tar', ['-czf', archive, '-C', resolve(temporary, 'source'), 'package']); - const digest = createHash('sha256').update(readFileSync(archive)).digest('hex'); - const releasePath = resolve(temporary, 'release.json'); - writeFileSync(releasePath, JSON.stringify({ schemaVersion: 'treeseed.integration-release/v1', release: 'fixture', generation: 7, track: 'development', - platform: { commit: 'a'.repeat(40) }, deployment: { commit: 'b'.repeat(40) }, - hostPayloads: [{ id: 'admin', packageName: '@treeseed/admin', version: '1.0.0-rc.1', artifact: { url: pathToFileURL(archive).href, sha256: digest } }] })); - const output = resolve(temporary, 'runs'); - const child = spawnSync(process.execPath, ['scripts/run-composition-guarantees.mjs', '--release', releasePath, '--output', output, '--run-id', 'fixture-run'], { cwd: root, encoding: 'utf8' }); - assert.equal(child.status, 0, child.stderr || child.stdout); - const summary = JSON.parse(child.stdout); - const report = JSON.parse(readFileSync(resolve(summary.runRoot, 'report.json'), 'utf8')); - assert.equal(report.ok, true); - assert.deepEqual(report.counts, { passed: 1, failed: 0, skipped: 0, blocked: 0, releaseBlockingFailures: 0 }); - assert.equal(report.environment, 'local'); - assert.equal(report.results[0].steps[0].status, 'passed'); - assert.equal(report.results[0].checks[0].caseId, 'fixture.case'); - assert.equal(report.results[0].checks[0].evidenceCheckId, 'desktop_chromium:fixture.case'); - const executionKey = report.verifiers[0].executionKey; - assert.deepEqual(JSON.parse(readFileSync(resolve(summary.runRoot, 'evidence', `${executionKey}-assets/marker.json`), 'utf8')), { runId: 'fixture-run' }); - assert.equal(report.payloads[0].artifact.sha256, digest); - process.stdout.write(`${JSON.stringify({ ok: true, cases: 1 })}\n`); -} finally { - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/verify-development-workflow.ts b/scripts/verify-development-workflow.ts deleted file mode 100644 index f4444333..00000000 --- a/scripts/verify-development-workflow.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { mkdtempSync, rmSync } from 'node:fs'; -import { execFileSync } from 'node:child_process'; -import { tmpdir } from 'node:os'; -import { resolve } from 'node:path'; -import { DevelopmentSessionStore, affectedDevelopmentClosure } from '../packages/deployment/src/manager/development-sessions.ts'; -import { runCommandLine } from '../packages/cli/src/cli/runtime.ts'; - -const workspace = resolve(import.meta.dirname, '..'); -const temporary = mkdtempSync(resolve(tmpdir(), 'treeseed-development-workflow-')); -const sessions = new DevelopmentSessionStore(resolve(temporary, 'manager'), { routedHealth: async () => true }); -let activeSessionId: string | null = null; - -async function hostInvoke(input: { handlerId: string; options: Record }) { - const payload = JSON.parse(String(input.options.payload ?? '{}')) as Record; - switch (input.handlerId) { - case 'local.dev.session.start': { - const record = sessions.start(payload.session, payload.runtimes); activeSessionId = record.session.sessionId; return record; - } - case 'local.dev.status': return payload.sessionId ? sessions.load(payload.sessionId) : { sessions: sessions.list(Boolean(payload.all)) }; - case 'local.dev.plan': { - const record = sessions.load(payload.sessionId); return { affected: affectedDevelopmentClosure(record.runtimes, payload.selected.length ? payload.selected : record.session.targets.map((target) => `${target.projectId}.${target.targetId}`)) }; - } - case 'local.dev.environment': return { environment: { TREESEED_API_BASE_URL: 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: '/etc/treeseed/cli/localhost-ca.crt' } }; - case 'local.dev.candidate.register': return sessions.registerCandidate(payload.sessionId, payload.candidate); - case 'local.dev.use': { - sessions.setMode(payload.sessionId, payload.projectId, payload.targetId, payload.mode); - if (payload.mode !== 'released' && payload.port) await sessions.attach(payload.sessionId, payload.projectId, payload.targetId, payload.port); - if (payload.mode !== 'released' && !payload.port) sessions.markReady(payload.sessionId, payload.projectId, payload.targetId); - if (payload.mode !== 'released' && payload.port && !await sessions.verifyRouted(payload.sessionId, payload.projectId, payload.targetId)) throw new Error('Routed health failed.'); - return sessions.load(payload.sessionId); - } - case 'local.dev.session.stop': return sessions.stop(payload.sessionId); - default: throw new Error(`Unsupported workflow harness command ${input.handlerId}.`); - } -} - -const output: string[] = []; -const context = { cwd: workspace, env: { ...process.env, XDG_STATE_HOME: resolve(temporary, 'state'), TREESEED_API_BASE_URL: process.env.TREESEED_API_BASE_URL ?? 'https://api.treeseed.localhost', NODE_EXTRA_CA_CERTS: process.env.NODE_EXTRA_CA_CERTS ?? '/etc/treeseed/cli/localhost-ca.crt' }, interactiveUi: false, hostInvoke, write: (value: string) => output.push(value) }; - -function verifyAdminAgainstLivePackages() { - try { - execFileSync('npm', ['run', 'check'], { cwd: resolve(workspace, 'packages/admin'), env: context.env, encoding: 'utf8', maxBuffer: 2_000_000 }); - } catch (error) { - const result = error as { stdout?: string; stderr?: string }; - const diagnostic = `${result.stdout ?? ''}\n${result.stderr ?? ''}`.trim().slice(-12_000); - throw new Error(`Admin check failed against the live package overlays.\n${diagnostic}`); - } -} - -try { - let exit = await runCommandLine(['dev', 'session', 'start', 'development.session.yaml', '--actor', 'development-workflow-verifier', '--lease-seconds', '900', '--json'], context); - if (exit !== 0 || !activeSessionId) throw new Error('Unable to start the development workflow session.'); - exit = await runCommandLine(['dev', 'use', 'sdk.package=live', '--target', 'ui.package=live', '--target', 'core.package=live', '--json'], context); - if (exit !== 0) throw new Error('Unable to activate the live package overlay closure.'); - exit = await runCommandLine(['dev', 'use', 'admin.web=live', '--json'], context); - if (exit !== 0) throw new Error('Unable to activate the Admin live-web target.'); - const health = await fetch('http://127.0.0.1:4322/healthz'); - if (health.status !== 200) throw new Error(`Admin live health returned ${health.status}.`); - verifyAdminAgainstLivePackages(); - const record = sessions.load(activeSessionId); - const live = record.session.targets.filter((target) => target.mode === 'live').map((target) => `${target.projectId}.${target.targetId}`).sort(); - process.stdout.write(`${JSON.stringify({ ok: true, sessionId: activeSessionId, live, adminHealth: health.status, adminCheck: 'passed', packageGenerations: record.session.targets.filter((target) => target.targetId === 'package').map((target) => ({ target: `${target.projectId}.${target.targetId}`, generation: target.generation })) }, null, 2)}\n`); -} finally { - if (activeSessionId) await runCommandLine(['dev', 'session', 'stop', '--session', activeSessionId, '--restore', '--json'], context).catch(() => 1); - rmSync(temporary, { recursive: true, force: true }); -} diff --git a/scripts/verify-local-workset-inventory.mjs b/scripts/verify-local-workset-inventory.mjs deleted file mode 100644 index 45560d9b..00000000 --- a/scripts/verify-local-workset-inventory.mjs +++ /dev/null @@ -1,74 +0,0 @@ -import { createHash } from 'node:crypto'; -import { readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const baseUrl = process.env.TREESEED_API_BASE_URL?.trim() || 'http://127.0.0.1:3000'; -const token = process.env.TREESEED_LOCAL_OPERATOR_TOKEN?.trim(); -if (!/^http:\/\/(?:127\.0\.0\.1|localhost)(?::\d+)?$/u.test(baseUrl)) throw new Error('Local inventory verification requires a loopback API URL.'); -if (!token) throw new Error('TREESEED_LOCAL_OPERATOR_TOKEN is required; never pass it as a command argument or print it.'); - -const request = async (path) => { - const response = await fetch(`${baseUrl}${path}`, { headers: { authorization: `Bearer ${token}` } }); - const body = await response.json(); - if (!response.ok || body.ok === false) throw new Error(`Local inventory request failed at ${path} with status ${response.status}.`); - return body.payload; -}; -const text = (value) => typeof value === 'string' && value.trim() ? value.trim() : null; -const record = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : {}; -const repositoryIdentity = (value) => String(value).replace(/^https:\/\/github\.com\//u, '').replace(/\.git$/u, ''); -const expectedRepositories = [ - 'treeseed-ai/admin', 'treeseed-ai/agent', 'treeseed-ai/ai', 'treeseed-ai/api', 'treeseed-ai/cli', 'treeseed-ai/core', - 'treeseed-ai/fixtures', 'treeseed-ai/reviewer', 'treeseed-ai/sdk', 'treeseed-ai/template-engineering', - 'treeseed-ai/template-research', 'treeseed-ai/treedx', 'treeseed-ai/ui', -].sort(); -const profile = await request('/v1/teams/by-name/treeseed/profile'); -const teamId = text(record(profile.team).id); -if (!teamId) throw new Error('Local TreeSeed team profile has no id.'); -const payload = await request(`/v1/teams/${encodeURIComponent(teamId)}/project-inventory`); -const inventory = []; -const excludedExternalProjects = new Set(); -for (const project of Array.isArray(payload.projects) ? payload.projects : []) { - const metadata = record(project.metadata); - const configured = record(metadata.repository); - for (const repository of Array.isArray(project.repositories) ? project.repositories : []) { - const role = text(repository.role); - const owner = text(repository.owner); - const name = text(repository.name); - if (!['primary', 'fixture'].includes(role) || !owner || !name) continue; - if (['market', 'market-api'].includes(name)) { - excludedExternalProjects.add(`${owner}/${name}`); - continue; - } - if (name === 'platform' || name.endsWith('-content')) continue; - const policy = record(configured.repositoryPolicy); - const path = text(repository.submodulePath) || text(configured.checkoutPath); - if (!path || name === 'platform') continue; - const branch = role === 'primary' - ? text(repository.currentBranch) || text(policy.stagingBranch) || text(repository.defaultBranch) - : text(repository.currentBranch) || text(repository.defaultBranch); - if (!branch) throw new Error(`API inventory entry ${owner}/${name} is missing its observable branch.`); - inventory.push({ repository: `${owner}/${name}`, role, path, branch }); - } -} -inventory.sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right))); -const repositoryIdentities = inventory.map((entry) => repositoryIdentity(entry.repository)).sort(); -if (inventory.length !== 13 || JSON.stringify(repositoryIdentities) !== JSON.stringify(expectedRepositories)) { - throw new Error(`Local API inventory is not the canonical 13-repository Platform workset: ${repositoryIdentities.join(', ')}.`); -} -const receipt = JSON.parse(readFileSync(resolve(root, '.treeseed/worksets/platform/latest.json'), 'utf8')); -if (receipt.status !== 'verified') throw new Error('Platform workset receipt is not verified.'); -const observed = receipt.completed.map((action) => ({ repository: repositoryIdentity(action.repository), role: action.role, path: action.path, branch: action.sourceBranch })) - .sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right))); -const forbiddenObserved = observed.filter((entry) => ['treeseed-ai/market', 'treeseed-ai/market-api'].includes(entry.repository)); -if (forbiddenObserved.length > 0) throw new Error(`Platform workset contains forbidden custody: ${forbiddenObserved.map((entry) => entry.repository).join(', ')}.`); -if (JSON.stringify(inventory) !== JSON.stringify(observed)) throw new Error('Local API inventory does not equal the materialized workset receipt.'); -const digest = createHash('sha256').update(JSON.stringify(inventory)).digest('hex'); -console.log(JSON.stringify({ - ok: true, - teamId, - count: inventory.length, - inventoryDigest: `sha256:${digest}`, - receiptStatus: receipt.status, - excludedExternalProjects: [...excludedExternalProjects].sort(), -})); diff --git a/scripts/verify-platform.mjs b/scripts/verify-platform.mjs deleted file mode 100644 index 76f4db57..00000000 --- a/scripts/verify-platform.mjs +++ /dev/null @@ -1,226 +0,0 @@ -import { execFileSync } from 'node:child_process'; -import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs'; -import { basename, resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const fail = (message) => { throw new Error(message); }; -const read = (path) => readFileSync(resolve(root, path), 'utf8'); -const requireFile = (path) => { if (!existsSync(resolve(root, path))) fail(`Platform is missing ${path}.`); }; - -const rootPackage = JSON.parse(read('package.json')); -if ('workspaces' in rootPackage) fail('Platform must not treat independent project repositories as npm workspaces.'); -if (existsSync(resolve(root, 'package-lock.json'))) fail('Platform must not create a root package lock; each project repository owns its lock independently.'); -execFileSync(process.execPath, [resolve(root, 'scripts/verify-treeseed-skill.mjs')], { cwd: root, stdio: 'inherit' }); -execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-plan.mjs')], { cwd: root, stdio: 'inherit' }); -execFileSync(process.execPath, [resolve(root, 'scripts/test-composition-guarantee-run.mjs')], { cwd: root, stdio: 'inherit' }); -if (existsSync(resolve(root, '.gitmodules'))) fail('Platform must not encode team inventory as gitlinks.'); -if (existsSync(resolve(root, 'treeseed.portfolio.json'))) fail('Platform must read live team inventory from its portable seed bundle.'); -const index = execFileSync('git', ['ls-files', '--stage'], { cwd: root, encoding: 'utf8' }); -const gitlinks = index.split('\n').filter((line) => line.startsWith('160000 ')); -if (gitlinks.length) fail(`Platform contains forbidden gitlinks: ${gitlinks.join(', ')}`); -const trackedFiles = execFileSync('git', ['ls-files', '-z'], { cwd: root, encoding: 'utf8' }).split('\0').filter(Boolean); -const homePathFiles = trackedFiles.filter((path) => { - const absolute = resolve(root, path); - return existsSync(absolute) && statSync(absolute).isFile() && /\/(?:home|Users)\//u.test(read(path)); -}); -if (homePathFiles.length) fail(`Platform must not contain host-specific home-directory paths: ${homePathFiles.join(', ')}`); - -for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml', 'deployment/host-configs/development-workstation.json', 'deployment/host-configs/capacity-provider-development.json', 'deployment/integration-releases/stable.json', 'deployment/integration-releases/development.json', 'deployment/treeai-component-inputs.json', 'docs/multi-host-deployment.md']) requireFile(path); -for (const path of ['seeds/agents.yaml', 'seeds/platform.yaml', 'treeseed.agents-capacity-provider.yaml', 'treeseed.platform-capacity-provider.yaml']) { - if (existsSync(resolve(root, path))) fail(`Platform retains obsolete split-provider input ${path}.`); -} - -const seed = read('seeds/treeseed.yaml'); -for (const required of ['schemaVersion: treeseed.seed-bundle/v3', 'adrian.webb@knowledge.coop', 'service-principal:treeseed/automation', 'interactiveLogin: false', 'capacity-provider:treeseed/local', 'requiredLanePurposes: [communication, platform, workday]']) { - if (!seed.includes(required)) fail(`Canonical seed is missing required contract text: ${required}`); -} -for (const forbidden of ['agentLabServicePrincipals', 'providerClass:', 'adrian.webb@treeseed.dev', 'registrationKey', 'privateKey']) { - if (seed.includes(forbidden)) fail(`Canonical seed retains forbidden legacy or secret field: ${forbidden}`); -} -const projects = [...seed.matchAll(/key: ['"]?(project:treeseed\/[a-z0-9-]+)/gu)].map((match) => match[1]); -if (new Set(projects).size !== 16) fail(`Canonical seed must contain 16 unique primary projects; found ${new Set(projects).size}.`); -for (const project of ['project:treeseed/market', 'project:treeseed/market-api']) if (!projects.includes(project)) fail(`Canonical seed is missing ${project}.`); -if (!projects.includes('project:treeseed/deployment')) fail('Canonical seed is missing the shared Deployment project.'); -const repositories = [...seed.matchAll(/key: ['"]?(repository:treeseed\/[a-z0-9-]+)/gu)].map((match) => match[1]); -if (new Set(repositories).size !== 33) fail(`Canonical seed must contain 16 primary repositories, 16 libraries, and one fixture repository; found ${new Set(repositories).size}.`); -if (!/repository:treeseed\/deployment[^\n]+checkoutPath: packages\/deployment[^\n]+repositoryPolicy:/u.test(seed)) fail('Deployment must be a first-party checkout without a gitlink.'); -if (/repository:treeseed\/deployment[^\n]+submodulePath:/u.test(seed)) fail('Deployment must not be declared as a submodule.'); -if (/role: content(?:[,}\s]|$)/u.test(seed)) fail('Legacy content repository roles must not remain in the v3 seed.'); -if ((seed.match(/role: library/gmu) ?? []).length !== 16 || (seed.match(/libraryRepository:/gmu) ?? []).length !== 16) fail('Every seeded project must declare exactly one repository-backed library.'); -if (!/digest: sha256:[a-f0-9]{64}/u.test(seed)) fail('Canonical seed is not digest-bound.'); - -const provider = read('treeseed.capacity-provider.yaml'); -for (const required of ['schemaVersion: 5', 'ontology:', 'offers:', 'purpose: communication', 'purpose: platform', 'purpose: workday', 'reclaimPolicy: admission', 'isolation: microvm', 'runtime: kata-runtime-rs-qemu', 'defaultDenyNetwork: true']) { - if (!provider.includes(required)) fail(`Unified provider manifest is missing ${required}.`); -} -if (provider.includes('schemaVersion: 4') || provider.includes('isolation: process') || provider.includes('isolation: worker')) fail('Unified provider manifest must not retain v4 or non-microVM execution adapters.'); -for (const forbidden of ['providerClass:', 'registrationKeyRef:', 'membershipCredentialRef:']) if (provider.includes(forbidden)) fail(`Unified provider manifest retains ${forbidden}.`); - -const host = JSON.parse(read('deployment/host-configs/development-workstation.json')); -if (host.schemaVersion !== 'treeseed.host/v1' || host.configurationId !== 'development-workstation' || host.host?.role !== 'integrated' || host.runtime?.management !== 'managed' || host.runtime?.environment !== 'development' || host.runtime?.dataRoot !== '/var/lib/treeseed/development/.treeseed/data') fail('Development workstation must use the current integrated managed-host contract and standard TreeSeed development data root.'); -if (host.updates?.defaultTrack !== 'development' || host.updates?.stable?.maintenanceWindow?.weekday !== 'sunday' || host.updates?.stable?.maintenanceWindow?.localTime !== '03:00') fail('Development workstation must poll development while preserving the stable weekly activation policy.'); -for (const componentId of ['api', 'admin', 'agent', 'treedx', 'lab']) if (!host.components?.[componentId]?.enabled || host.components[componentId].track !== 'development') fail(`Development workstation must select the development ${componentId} release.`); -for (const componentId of ['ai-inference', 'ai-training', 'ai-lab']) if (host.components?.[componentId]?.enabled !== false) fail(`Default workstation must leave ${componentId} disabled.`); -const aliases = [host.network?.manager?.aliases ?? [], ...Object.values(host.components ?? {}).flatMap((component) => Object.values(component.aliases ?? {}))].flat(); -if (aliases.length !== new Set(aliases).size || aliases.some((alias) => !/^[a-z0-9.-]+\.localhost$/u.test(alias))) fail('Local aliases must be unique and remain in the .localhost namespace.'); -const overrideKeys = Object.values(host.components ?? {}).flatMap((component) => Object.keys(component.aliases ?? {})); -if (overrideKeys.some((key) => !/^[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+\.[a-z][a-z0-9.-]+$/u.test(key))) fail('Alias overrides must use full component.service.endpoint identities.'); -if (host.secrets?.['agent-codex-auth'] || JSON.stringify(host).includes('auth.json')) fail('MicroVM model authority must remain in the host credential broker rather than the provider or guest.'); -if (host.security?.sandbox?.required !== true || host.security.sandbox.runtime !== 'kata-runtime-rs-qemu' || host.security.providerVolume?.encryption !== 'luks2' || host.security.applicationEncryption?.provider !== 'systemd-credential') fail('Development workstation must require Kata, LUKS2, and application-level encryption.'); -if (host.security?.providerVolume?.backingPath !== '/var/lib/treeseed/encrypted/provider-data.luks' || host.security?.providerVolume?.mountPath !== '/var/lib/treeseed/agent') fail('Development workstation provider storage must use standard TreeSeed paths.'); -if (host.security.sandbox.profiles.some((profile) => !/^sha256:[a-f0-9]{64}$/u.test(profile.guestImageDigest))) fail('Every sandbox profile must bind an immutable guest image digest.'); -if (host.generation !== 21) fail('Development workstation must use configuration generation 21.'); -if (host.components?.api?.configuration?.environment?.TREESEED_API_BASE_URL !== 'https://api.treeseed.localhost') fail('The API and managed providers must use the canonical API audience.'); -if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_URL !== 'http://treedx:4000') fail('The integrated API must use the manager-owned TreeDX service over the private platform network.'); -if (host.components?.api?.configuration?.environment?.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST !== 'adrian.webb@knowledge.coop') fail('A fresh workstation must assign its configured initial account through the API bootstrap-admin allowlist.'); -if (host.components?.api?.configuration?.environment?.TREESEED_SITE_URL !== 'https://admin.treeseed.localhost' - || host.components?.api?.configuration?.environment?.TREESEED_API_AUTH_APPROVAL_BASE_URL !== 'https://admin.treeseed.localhost' - || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_HOST !== 'mailpit' - || host.components?.api?.configuration?.environment?.TREESEED_MAILPIT_SMTP_PORT !== '1025') fail('A fresh workstation must route account confirmation through the managed Lab Mailpit service.'); -const brokerSecret = 'treedx-credential-broker-assertion'; -if (host.components?.api?.configuration?.secretEnvironment?.TREESEED_TREEDX_CREDENTIAL_BROKER_ASSERTION !== brokerSecret - || host.components?.treedx?.configuration?.secretEnvironment?.TREEDX_REMOTE_CREDENTIAL_BROKER_ASSERTION !== brokerSecret - || !host.secrets?.[brokerSecret]) fail('API and TreeDX must share one manager-custodied credential-broker assertion.'); -if (host.components?.api?.configuration?.secretEnvironment?.TREESEED_GITHUB_TOKEN !== 'github-repository-token' - || host.secrets?.['github-repository-token']?.reference !== '/etc/treeseed/credentials/github-repository-token') fail('Library reconciliation requires a manager-custodied GitHub repository token outside the development data root.'); -if (host.components?.treedx?.configuration?.environment?.TREEDX_REMOTE_CREDENTIAL_BROKER_SERVICE_ID !== 'node_local' - || host.components?.treedx?.configuration?.environment?.TREEDX_GIT_EXTERNAL_TRANSPORT_ENABLED !== 'true' - || host.components?.treedx?.configuration?.environment?.TREEDX_GIT_ALLOWED_HOSTS !== 'github.com' - || host.components?.treedx?.configuration?.environment?.TREEDX_BOOTSTRAP_TRUST_ACTOR_ID !== 'treeseed-api' - || host.components?.treedx?.configuration?.environment?.TREEDX_BOOTSTRAP_TRUST_TENANT_ID !== 'treeseed-control-plane') fail('TreeDX must declare its broker identity, bounded Git hosts, and API delegation trust identity.'); -const treeDxIssuer = 'https://api.treeseed.localhost/treedx'; -const treeDxAudience = 'treedx'; -if (host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_ISSUER !== treeDxIssuer - || host.components?.api?.configuration?.environment?.TREESEED_TREEDX_JWT_AUDIENCE !== treeDxAudience - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ISSUER !== treeDxIssuer - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_AUDIENCE !== treeDxAudience - || host.components?.treedx?.configuration?.environment?.TREEDX_JWT_ALLOWED_ALGS !== 'RS256') fail('API and TreeDX must share the generation 7 RS256 issuer, audience, and private JWKS discovery contract.'); -if (host.components?.agent?.connections?.['control-plane']?.kind !== 'local' || host.components?.treedx?.connections?.['control-plane']?.kind !== 'local') fail('Integrated Agent and TreeDX components require explicit local control-plane connections.'); -const embeddedProvider = host.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; -if (!embeddedProvider.startsWith('schemaVersion: 5\n') || !embeddedProvider.includes('\nontology:\n') || embeddedProvider.includes('schemaVersion: 4') || embeddedProvider.includes('sandboxProfileIds:') || embeddedProvider.includes('\n capabilities:\n - communication\n')) fail('Integrated Agent must receive only the synchronized capability-driven provider manifest v5.'); -if (host.components?.admin?.connections?.api?.kind !== 'local') fail('Managed Admin requires an explicit local or remote API connection.'); -if (Object.keys(host.components?.admin?.aliases ?? {}).length) fail('Managed Admin must use its component-owned canonical alias rather than a forbidden host override.'); -if (JSON.stringify(aliases.sort()) !== JSON.stringify(['api.treeseed.localhost', 'lab.treeseed.localhost', 'mail.treeseed.localhost', 'manager.treeseed.localhost', 'treedx.treeseed.localhost'])) fail('Development workstation must use only the permitted local alias overrides.'); -const providerHost = JSON.parse(read('deployment/host-configs/capacity-provider-development.json')); -if (providerHost.host?.role !== 'capacity-provider' || Object.keys(providerHost.components ?? {}).join(',') !== 'agent' || providerHost.components.agent?.connections?.['control-plane']?.kind !== 'remote') fail('Capacity-provider fixture must select only Agent with an explicit remote control plane.'); -if ((providerHost.network?.manager?.aliases ?? []).length || Object.values(providerHost.components.agent?.aliases ?? {}).length) fail('Private capacity-provider fixture must remain edge-free.'); -const embeddedDedicatedProvider = providerHost.components?.agent?.configuration?.files?.['treeseed.capacity-provider.yaml'] ?? ''; -if (!embeddedDedicatedProvider.startsWith('schemaVersion: 5\n') || !embeddedDedicatedProvider.includes('\nontology:\n') || embeddedDedicatedProvider.includes('schemaVersion: 4') || embeddedDedicatedProvider.includes('sandboxProfileIds:')) fail('Dedicated capacity-provider fixture must receive only the synchronized provider manifest v5.'); - -const treeAiInputs = JSON.parse(read('deployment/treeai-component-inputs.json')); -if (treeAiInputs.schemaVersion !== 'treeseed.platform-component-inputs/v1' || treeAiInputs.release !== '0.11.0-rc9' || treeAiInputs.sourceCommit !== '92c7b2edc73416d77c5c0a6789ef73dba71ddf92') fail('TreeAI component inputs must identify the exact independent RC source.'); -if (treeAiInputs.contracts?.genericSdk?.sha256 !== '90d695d499088f2788da36863128efe57079915d3999cc876888ceb091cb95f2') fail('TreeAI generic SDK must bind the published rc9 artifact.'); -if (treeAiInputs.contracts?.operationInventorySha256 !== 'dc60eb514e11a4b867b3353830d886205df6254c7c4ecfab9a06b1b4dcb4e1fc') fail('TreeAI operation inventory digest is not the adopted release.'); -if (treeAiInputs.contracts?.treeSeedSdk?.version !== '0.13.0-rc.53' || treeAiInputs.contracts.treeSeedSdk.sha256 !== '7793d4184d821fbaca58476c11821500e40eebf1732b1353e0f8da64fb011fe4') fail('TreeSeed SDK must bind the published TreeAI adoption RC.'); -if (treeAiInputs.contracts?.api?.version !== '0.8.0-rc.49' || treeAiInputs.contracts.api.sha256 !== '1fa497f2c0cf2f0e05d148f6fd903765f6b8d2558dbfd6f4514aa6cf13423037') fail('TreeSeed API must bind the SDK-driven TreeAI proxy RC.'); -if (treeAiInputs.contracts?.cli?.version !== '0.13.0-rc.30' || treeAiInputs.contracts.cli.sha256 !== 'a57056e368c49015d355caccb00d57b7e0ea4487286ebbb291e7b11b963931e7') fail('TreeSeed CLI must bind the SDK-driven TreeAI command RC.'); -if (JSON.stringify(treeAiInputs.components?.map(({ componentId }) => componentId)) !== JSON.stringify(['ai-inference', 'ai-training', 'ai-lab'])) fail('TreeAI component inputs must preserve inference, training, and lab ownership order.'); -for (const component of treeAiInputs.components) { - if (!/^https:\/\/github\.com\/treeseed-ai\/ai\/releases\/download\//u.test(component.manifest?.url) - || !/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || !/^[a-f0-9]{64}$/u.test(component.compose?.sha256 ?? '')) fail(`TreeAI ${component.componentId} is not independently digest locked.`); -} -for (const profileId of ['ai-inference', 'ai-training', 'ai-factory', 'ai-connected']) { - const profile = JSON.parse(read(`deployment/profiles/${profileId}.json`)); - if (profile.schemaVersion !== 'treeseed.platform-profile/v1' || profile.id !== profileId || profile.default !== false) fail(`TreeAI profile ${profileId} must remain explicit and opt-in.`); -} -const inferenceProfile = JSON.parse(read('deployment/profiles/ai-inference.json')); -const trainingProfile = JSON.parse(read('deployment/profiles/ai-training.json')); -const factoryProfile = JSON.parse(read('deployment/profiles/ai-factory.json')); -if (inferenceProfile.components?.['ai-inference']?.aliases?.['ai-inference.inference-api.control'] !== 'inference.ai.treeseed.localhost') fail('Inference alias must use the SDK endpoint identity.'); -if (trainingProfile.components?.['ai-training']?.aliases?.['ai-training.training-api.control'] !== 'training.ai.treeseed.localhost') fail('Training alias must use the SDK endpoint identity.'); -if (factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.open-webui.web'] !== 'chat.ai.treeseed.localhost' || factoryProfile.components?.['ai-lab']?.aliases?.['ai-lab.hermes-dashboard.web'] !== 'hermes.ai.treeseed.localhost') fail('Lab aliases must use SDK endpoint identities.'); -const labConnections = factoryProfile.components?.['ai-lab']?.connections; -if (JSON.stringify(labConnections?.inference) !== JSON.stringify({ kind: 'local', componentId: 'ai-inference', serviceId: 'inference-api', endpointId: 'inference' }) || JSON.stringify(labConnections?.training) !== JSON.stringify({ kind: 'local', componentId: 'ai-training', serviceId: 'training-api', endpointId: 'control' })) fail('AI lab must declare its required local inference and training connections.'); -const requiredInputCustody = { - 'ai-inference': { - environment: { INFERENCE_DATABASE_URL: 'ai-inference-database-url', INFERENCE_POSTGRES_PASSWORD: 'ai-inference-postgres-password', AI_API_KEYS: 'ai-inference-api-keys' }, - secrets: { 'ai-inference-database-url': '/etc/treeseed/credentials/ai-inference-database-url', 'ai-inference-postgres-password': '/etc/treeseed/credentials/ai-inference-postgres-password', 'ai-inference-api-keys': '/etc/treeseed/credentials/ai-inference-api-keys', 'artifact-source-registry': '/etc/treeseed/credentials/ai-inference-artifact-source', 'artifact-destination-registry': '/etc/treeseed/credentials/ai-inference-artifact-destination' }, - }, - 'ai-training': { - environment: { TRAINING_DATABASE_URL: 'ai-training-database-url', TRAINING_POSTGRES_PASSWORD: 'ai-training-postgres-password', AI_API_KEYS: 'ai-training-api-keys' }, - secrets: { 'ai-training-database-url': '/etc/treeseed/credentials/ai-training-database-url', 'ai-training-postgres-password': '/etc/treeseed/credentials/ai-training-postgres-password', 'ai-training-api-keys': '/etc/treeseed/credentials/ai-training-api-keys', 'artifact-signing-key': '/etc/treeseed/credentials/ai-artifact-signing-key' }, - }, -}; -function verifyInputCustody(profile, componentId) { - const expected = requiredInputCustody[componentId]; - if (JSON.stringify(profile.components?.[componentId]?.configuration?.secretEnvironment) !== JSON.stringify(expected.environment)) fail(`${profile.id} does not bind the complete ${componentId} secret environment.`); - for (const [id, reference] of Object.entries(expected.secrets)) if (profile.secrets?.[id]?.provider !== 'file' || profile.secrets[id].reference !== reference) fail(`${profile.id} does not bind ${id} to its declared custody path.`); -} -verifyInputCustody(inferenceProfile, 'ai-inference'); -verifyInputCustody(trainingProfile, 'ai-training'); -verifyInputCustody(factoryProfile, 'ai-inference'); -verifyInputCustody(factoryProfile, 'ai-training'); -if (JSON.stringify(factoryProfile.components?.['ai-lab']?.configuration?.secretEnvironment) !== JSON.stringify({ AI_LAB_API_KEYS: 'ai-lab-api-keys' })) fail('AI factory does not bind the lab API credential environment.'); -const labSecretPaths = { - 'ai-lab-api-keys': '/etc/treeseed/credentials/ai-lab-api-keys', 'training-source': '/etc/treeseed/credentials/ai-lab-training-source', - 'factory-inference-key': '/etc/treeseed/credentials/ai-lab-factory-inference-key', 'factory-training-key': '/etc/treeseed/credentials/ai-lab-factory-training-key', 'hermes-api-key': '/etc/treeseed/credentials/ai-lab-hermes-api-key', - 'hermes-password-hash': '/etc/treeseed/credentials/ai-lab-hermes-password-hash', 'hermes-session-secret': '/etc/treeseed/credentials/ai-lab-hermes-session-secret', 'training-ingest-key': '/etc/treeseed/credentials/ai-lab-training-ingest-key', - 'lab-library-action-key': '/etc/treeseed/credentials/ai-lab-lab-library-action-key', 'ai-mode-ca': '/etc/treeseed/credentials/ai-mode-ca.crt', - 'ai-mode-client-cert': '/etc/treeseed/credentials/ai-mode-client.crt', 'ai-mode-client-key': '/etc/treeseed/credentials/ai-mode-client.key', -}; -for (const [id, reference] of Object.entries(labSecretPaths)) if (factoryProfile.secrets?.[id]?.provider !== 'file' || factoryProfile.secrets[id].reference !== reference) fail(`AI factory does not bind ${id} to the released lab custody path.`); -if (factoryProfile.components?.['ai-lab']?.configuration?.environment?.RUNTIME_GID !== undefined) fail('Platform must leave RUNTIME_GID under manager-derived custody.'); -const connectedProfile = JSON.parse(read('deployment/profiles/ai-connected.json')); -const treeAiNodes = JSON.parse(connectedProfile.components?.api?.configuration?.environment?.TREESEED_TREEAI_NODES ?? '{}'); -const treeAiEndpoints = treeAiNodes['local-ai']?.endpoints; -if (treeAiEndpoints?.lab !== 'http://controller:8081') fail('Connected AI must address the released lab controller service and port.'); -if ('qualification' in (treeAiEndpoints ?? {})) fail('Connected AI must not advertise the retired TreeAI host manager as a qualification endpoint.'); - -const stableIntegration = JSON.parse(read('deployment/integration-releases/stable.json')); -const developmentIntegration = JSON.parse(read('deployment/integration-releases/development.json')); -if (stableIntegration.schemaVersion !== 'treeseed.integration-release/v1' || stableIntegration.track !== 'stable' || stableIntegration.components?.length !== 0) fail('Preproduction stable integration must remain an explicit empty base.'); -if (developmentIntegration.schemaVersion !== 'treeseed.integration-release/v1' || developmentIntegration.track !== 'development') fail('Development integration lock must use the current SDK-owned contract.'); -for (const integration of [stableIntegration, developmentIntegration]) { - if (!/^[a-f0-9]{40}$/u.test(integration.platform?.commit ?? '') || !/^[a-f0-9]{40}$/u.test(integration.deployment?.commit ?? '')) fail(`${integration.track} integration must identify exact reviewed Platform and Deployment commits.`); -} -if (developmentIntegration.generation <= stableIntegration.generation) fail('Development integration generation must advance beyond the immutable stable baseline.'); -if (JSON.stringify(developmentIntegration.hostPayloads?.map(({ id }) => id).sort()) !== JSON.stringify(['admin', 'api', 'cli', 'core', 'playwright-core', 'reviewer', 'sdk', 'treedx', 'ui', 'yaml', 'zod'])) fail('Development integration must select the exact managed host payload and verifier set.'); -if (JSON.stringify(developmentIntegration.components?.map(({ componentId }) => componentId).sort()) !== JSON.stringify(['admin', 'agent', 'ai-inference', 'ai-lab', 'ai-training', 'api', 'lab', 'treedx'])) fail('Development integration must select the exact Admin, API, Agent, TreeDX, Lab, and TreeAI component set.'); -for (const integration of [stableIntegration, developmentIntegration]) for (const payload of integration.hostPayloads ?? []) if (!/^https:\/\//u.test(payload.artifact?.url) || !/^[a-f0-9]{64}$/u.test(payload.artifact?.sha256 ?? '')) fail(`Integration payload ${payload.id} lacks an immutable artifact identity.`); -for (const component of developmentIntegration.components ?? []) { - if (!/^[a-f0-9]{64}$/u.test(component.manifest?.sha256 ?? '') || component.files?.some(({ artifact }) => !/^[a-f0-9]{64}$/u.test(artifact?.sha256 ?? ''))) fail(`Component ${component.componentId} is not fully digest locked.`); -} - -const config = read('treeseed.site.yaml'); -const requiredConfig = [/^authority: \{ kind: customer-platform \}\s*$/mu, /^controlPlane: \{ mode: managed \}\s*$/mu, /^\s*inventory: \{ source: seed, path: seeds\/treeseed\.yaml \}\s*$/mu, /^processing: \{ mode: local, providerRef: codex-sub \}\s*$/mu]; -if (requiredConfig.some((pattern) => !pattern.test(config))) fail('Platform configuration does not use the canonical managed local inventory.'); - -const templateIds = ['platform-local-managed-codex', 'platform-local-managed-ai', 'platform-market-codex', 'platform-external-codex']; -for (const templateId of templateIds) { - const templateRoot = resolve(root, 'templates', templateId); - const manifest = JSON.parse(readFileSync(resolve(templateRoot, 'template.config.json'), 'utf8')); - if (manifest.templateVersion !== '3.0.0') fail(`${templateId} must use unified seed template version 3.0.0.`); - for (const path of ['seeds/treeseed.yaml', 'treeseed.capacity-provider.yaml']) { - if (!manifest.managedSurface?.coreManaged?.includes(path) || !manifest.managedSurface?.validatedOnly?.includes(path)) fail(`${templateId} does not manage and validate ${path}.`); - } - if (JSON.stringify(manifest.platform?.seeds) !== JSON.stringify(['seeds/treeseed.yaml'])) fail(`${templateId} must instantiate only the canonical seed.`); - if (readFileSync(resolve(templateRoot, 'template/seeds/treeseed.yaml'), 'utf8') !== seed) fail(`${templateId} seed has drifted from the canonical bundle.`); - if (readFileSync(resolve(templateRoot, 'template/treeseed.capacity-provider.yaml'), 'utf8') !== provider) fail(`${templateId} provider manifest has drifted from the unified battery.`); - for (const legacy of ['template/seeds/agents.yaml', 'template/seeds/platform.yaml']) if (existsSync(resolve(templateRoot, legacy))) fail(`${templateId} retains ${legacy}.`); -} - -const repositoryRoots = ['packages', 'templates', '.fixtures', 'starters', 'products', 'services'].flatMap((directory) => { - const absolute = resolve(root, directory); - if (!existsSync(absolute) || !statSync(absolute).isDirectory()) return []; - return readdirSync(absolute, { withFileTypes: true }).filter((entry) => entry.isDirectory() && existsSync(resolve(absolute, entry.name, '.git'))).map((entry) => resolve(absolute, entry.name)); -}); -const marketRoots = repositoryRoots.filter((path) => ['market', 'market-api'].includes(basename(path))); -if (marketRoots.length > 2) fail(`Platform contains duplicate Market worksets: ${marketRoots.join(', ')}`); - -const primaryProjectRoots = ['.', 'packages/deployment', 'packages/api', 'packages/treedx', 'packages/sdk', 'packages/ui', 'packages/cli', 'packages/core', 'packages/admin', 'packages/agent', 'packages/reviewer', 'packages/ai', 'templates/engineering', 'templates/research', 'services/market-api'].filter((projectRoot) => projectRoot === '.' || existsSync(resolve(root, projectRoot, '.git'))); -const branchBoundary = '`main` is the only production branch and maps only to the `production` deployment environment.'; -for (const projectRoot of primaryProjectRoots) { - const agentsPath = resolve(root, projectRoot, 'AGENTS.md'); - if (!existsSync(agentsPath) || !readFileSync(agentsPath, 'utf8').includes(branchBoundary)) fail(`${projectRoot} must enforce the canonical main/production and staging/integration boundary in AGENTS.md.`); - const workflowsRoot = resolve(root, projectRoot, '.github/workflows'); - if (!existsSync(workflowsRoot)) continue; - for (const workflow of readdirSync(workflowsRoot, { recursive: true }).filter((path) => typeof path === 'string' && /\.ya?ml$/u.test(path))) { - const source = readFileSync(resolve(workflowsRoot, workflow), 'utf8'); - if (/^\s*environment:\s*(?:development|preview|stable)\b|^\s*environment:[^\n]*github-pages|refs\/heads\/(?:development|preview)\b|\bCHANNEL=preview\b|--preview-id\b|WORKFLOW_PREVIEW/mu.test(source)) fail(`${projectRoot}/.github/workflows/${workflow} violates the canonical deployment boundary.`); - } -} - -for (const path of ['packages/market-guarantee-catalog/guarantees/agent/system/guide-golden.guarantee.yaml', 'packages/market-guarantee-catalog/guarantees/agent/system/source-golden.guarantee.yaml', 'scripts/guarantees/verify-agent-capability.ts']) requireFile(path); -const agentGuaranteeDefinitions = readdirSync(resolve(root, 'packages/market-guarantee-catalog/guarantees'), { recursive: true }).filter((path) => typeof path === 'string' && path.endsWith('.guarantee.yaml')).length; - -console.log(JSON.stringify({ ok: true, inventoryAuthority: 'portable-seed-bundle', projects: 16, primaryRepositories: 16, projectLibraries: 16, fixtureRepositories: 1, owners: 2, providerModel: 'capability-marketplace-v5', lanes: ['communication', 'platform', 'workday'], gitlinks: 0, marketCheckouts: marketRoots.length, agentGuaranteeDefinitions, hostedDeployment: false })); diff --git a/scripts/verify-treeseed-skill.mjs b/scripts/verify-treeseed-skill.mjs deleted file mode 100644 index a9f8f604..00000000 --- a/scripts/verify-treeseed-skill.mjs +++ /dev/null @@ -1,37 +0,0 @@ -import { existsSync, readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; - -const root = resolve(import.meta.dirname, '..'); -const skillRoot = resolve(root, 'skills/treeseed'); -const skill = readFileSync(resolve(skillRoot, 'SKILL.md'), 'utf8'); -const receipt = JSON.parse(readFileSync(resolve(skillRoot, 'catalog-receipt.json'), 'utf8')); -const composition = JSON.parse(readFileSync(resolve(root, 'docs/evidence/unified-capacity-battery-composition.json'), 'utf8')); -const fail = (message) => { throw new Error(message); }; -const categories = ['knowledge', 'governance', 'projects', 'execution', 'mcp']; - -if (!/^name: treeseed$/mu.test(skill)) fail('TreeSeed Skill name is not canonical.'); -if (!/^ protocol: "2026-07-28"$/mu.test(skill)) fail('TreeSeed Skill does not declare the accepted MCP protocol.'); -if (receipt.schemaVersion !== 'treeseed.skill-catalog-receipt/v1' || receipt.protocolVersion !== '2026-07-28') fail('TreeSeed Skill receipt version is unsupported.'); -if (JSON.stringify(receipt.categories) !== JSON.stringify(categories)) fail('TreeSeed Skill categories drifted from the accepted set.'); -if (!/^sha256:[0-9a-f]{64}$/u.test(receipt.sdk.operationCatalogDigest) || !/^sha256:[0-9a-f]{64}$/u.test(receipt.sdk.mcpInputDigest) || !/^sha256:[0-9a-f]{64}$/u.test(receipt.api.mcpCatalogDigest)) fail('TreeSeed Skill receipt contains an invalid catalog digest.'); -if (composition.schemaVersion !== 'treeseed.platform-composition-evidence/v1' || composition.status !== 'staging_accepted') fail('TreeSeed capacity-battery composition evidence is not accepted.'); -const sdk = composition.members?.sdk; -const api = composition.members?.api; -if (receipt.sdk.version !== sdk?.version || receipt.sdk.stagingCommit !== sdk?.sourceCommit - || receipt.sdk.operationCatalogDigest !== `sha256:${sdk?.operationCatalogSha256}` - || receipt.sdk.mcpInputDigest !== `sha256:${sdk?.mcpInputSha256}`) fail('TreeSeed Skill SDK receipt drifted from the accepted composition.'); -if (receipt.api.stagingCommit !== api?.sourceCommit || receipt.api.openApiDigest !== `sha256:${api?.openApiSha256}` - || receipt.api.mcpCatalogDigest !== `sha256:${api?.mcpCatalogSha256}`) fail('TreeSeed Skill API receipt drifted from the accepted composition.'); -for (const field of ['tools', 'resources', 'resourceTemplates', 'prompts']) { - if (receipt.mcpSurface[field] !== api?.mcp?.[field]) fail(`TreeSeed Skill MCP ${field} receipt drifted from the accepted composition.`); -} - -for (const category of categories) { - const reference = `references/${category}.md`; - if (!skill.includes(`](${reference})`) || !existsSync(resolve(skillRoot, reference))) fail(`TreeSeed Skill is missing its ${category} reference.`); -} - -for (const forbidden of ['/v1/', 'tools/call', 'MarketClient', '--market']) if (skill.includes(forbidden)) fail(`TreeSeed Skill hard-codes forbidden transport detail: ${forbidden}`); -if (!/Discover its current MCP tools, resources, templates, prompts, schemas, and capability annotations/u.test(skill)) fail('TreeSeed Skill does not require runtime capability discovery.'); - -console.log(JSON.stringify({ ok: true, skill: 'treeseed', protocolVersion: receipt.protocolVersion, categories, sdkVersion: receipt.sdk.version, apiStaging: receipt.api.stagingCommit, mcpCatalogDigest: receipt.api.mcpCatalogDigest })); diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index fac2b439..ebcad042 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,77 +1,39 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 +version: 5 +description: Portable first-party source inventory for integrated and selective development. resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } + - { key: 'project:treeseed/platform', slug: platform, primaryRepository: 'repository:treeseed/platform' } + - { key: 'project:treeseed/deployment', slug: deployment, primaryRepository: 'repository:treeseed/deployment' } + - { key: 'project:treeseed/api', slug: api, primaryRepository: 'repository:treeseed/api' } + - { key: 'project:treeseed/treedx', slug: treedx, primaryRepository: 'repository:treeseed/treedx' } + - { key: 'project:treeseed/sdk', slug: sdk, primaryRepository: 'repository:treeseed/sdk' } + - { key: 'project:treeseed/ui', slug: ui, primaryRepository: 'repository:treeseed/ui' } + - { key: 'project:treeseed/cli', slug: cli, primaryRepository: 'repository:treeseed/cli' } + - { key: 'project:treeseed/core', slug: core, primaryRepository: 'repository:treeseed/core' } + - { key: 'project:treeseed/admin', slug: admin, primaryRepository: 'repository:treeseed/admin' } + - { key: 'project:treeseed/agent', slug: agent, primaryRepository: 'repository:treeseed/agent' } + - { key: 'project:treeseed/reviewer', slug: reviewer, primaryRepository: 'repository:treeseed/reviewer' } + - { key: 'project:treeseed/template-engineering', slug: template-engineering, primaryRepository: 'repository:treeseed/template-engineering' } + - { key: 'project:treeseed/template-research', slug: template-research, primaryRepository: 'repository:treeseed/template-research' } + - { key: 'project:treeseed/market', slug: market, primaryRepository: 'repository:treeseed/market' } + - { key: 'project:treeseed/market-api', slug: market-api, primaryRepository: 'repository:treeseed/market-api' } + - { key: 'project:treeseed/skill', slug: skill, primaryRepository: 'repository:treeseed/skill' } repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] + - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, gitUrl: 'https://github.com/treeseed-ai/treedx.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, gitUrl: 'https://github.com/treeseed-ai/sdk.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, gitUrl: 'https://github.com/treeseed-ai/ui.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, gitUrl: 'https://github.com/treeseed-ai/cli.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, gitUrl: 'https://github.com/treeseed-ai/core.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, gitUrl: 'https://github.com/treeseed-ai/admin.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, gitUrl: 'https://github.com/treeseed-ai/agent.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, gitUrl: 'https://github.com/treeseed-ai/reviewer.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-engineering.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-research.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } + - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, gitUrl: 'https://github.com/treeseed-ai/market.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/skill', project: 'project:treeseed/skill', role: primary, gitUrl: 'https://github.com/treeseed-ai/skill.git', defaultBranch: main } diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 00000000..8ae1e95c --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "skills": { + "treeseed": { + "source": "treeseed-ai/skill", + "ref": "0.1.0-rc.1", + "sourceType": "github", + "skillPath": "SKILL.md", + "computedHash": "9f7ee249da009916505cf5d4ca9ad1091080221ae5f17577f17d824a1ec710f6" + } + } +} diff --git a/skills/treeseed/SKILL.md b/skills/treeseed/SKILL.md deleted file mode 100644 index 936aa570..00000000 --- a/skills/treeseed/SKILL.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: treeseed -description: Operate a TreeSeed control plane through its current MCP capabilities for project, knowledge, governance, and execution work. Use when a task targets TreeSeed records or governed project-agent chat; do not use it as authority to run agents or mutate repositories. -metadata: - protocol: "2026-07-28" - catalog-receipt: "catalog-receipt.json" - categories: "knowledge,governance,projects,execution,mcp" ---- - -# TreeSeed - -Treat the connected TreeSeed server as the authority for identity, access, governance, scheduling, and receipts. Discover its current MCP tools, resources, templates, prompts, schemas, and capability annotations before choosing an operation. Do not rely on a remembered tool list or construct REST paths. - -## Operating boundary - -- Act as the authenticated external principal. Do not claim project-agent identity unless an explicit, authorized project-agent chat operation returns that delegation. -- Read current state before a consequential mutation. Follow returned blockers, concurrency tokens, confirmation requests, resource links, and next actions. -- Use server-provided structured input and output schemas. Never place credentials, session material, private keys, or bearer tokens in tool arguments or model-visible content. -- Treat `input_required` as a signed, exact-argument confirmation checkpoint. Ask the human when required; never alter, reuse, or synthesize confirmation state. -- Follow durable `treeseed://` resource links for asynchronous work. Use progress, cancellation, completion, and subscriptions when advertised instead of polling invented endpoints. -- Do not invoke or emulate `save`, `stage`, or `release` until the server advertises their accepted governed operations. -- For repository-backed project knowledge, use the `trsd library` workflow in `references/knowledge.md`; never assume an unbound virtual repository or a `src/content` library root. - -## Choose the relevant guidance - -- For questions, research, knowledge, or TreeDX projections, read [references/knowledge.md](references/knowledge.md). -- For proposals, decisions, estimates, reviews, or discussions, read [references/governance.md](references/governance.md). -- For teams, projects, repositories, or provider bindings, read [references/projects.md](references/projects.md). -- For agents, providers, capacity, plans, workdays, assignments, or explicit project-agent chat, read [references/execution.md](references/execution.md). -- For connection discovery, protocol behavior, errors, subscriptions, or confirmations, read [references/mcp.md](references/mcp.md). - -## Distribution - -Install this directory as one skill named `treeseed`, preserving `SKILL.md`, `catalog-receipt.json`, and `references/`. The receipt pins the accepted source and catalog evidence for this published copy; runtime discovery remains authoritative when a connected server advertises a newer compatible catalog. diff --git a/skills/treeseed/catalog-receipt.json b/skills/treeseed/catalog-receipt.json deleted file mode 100644 index a00bc093..00000000 --- a/skills/treeseed/catalog-receipt.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "schemaVersion": "treeseed.skill-catalog-receipt/v1", - "protocolVersion": "2026-07-28", - "categories": [ - "knowledge", - "governance", - "projects", - "execution", - "mcp" - ], - "sdk": { - "version": "0.13.0-rc.25", - "stagingCommit": "548c13ac8bf156361c0329fd4117e266bc541d41", - "operationCatalogDigest": "sha256:e1d3ba43af80ed5978b22b86e8e0c43894fd27ddb48434940bac4659e391ce0f", - "mcpInputDigest": "sha256:cf9c77d9f81234b4fd123de68a197d8e32a8555c4534aa8b51fe36e384c8367f" - }, - "api": { - "stagingCommit": "819dbcd3aa24661ceab98df4e1413853a0166548", - "mcpCatalogDigest": "sha256:556297ce4e293df6e1446d5f081eeef6bc43ec76bbc6c59795a7d0414bd27d3a", - "openApiDigest": "sha256:8679239462624d57bdc285d6727042944081ac8b6c9c8eadd96e6fb76a2df0c2" - }, - "mcpSurface": { - "tools": 123, - "resources": 5, - "resourceTemplates": 51, - "prompts": 5, - "capabilities": [ - "completion", - "progress", - "cancellation", - "input_required", - "resource_subscriptions" - ] - } -} diff --git a/skills/treeseed/references/execution.md b/skills/treeseed/references/execution.md deleted file mode 100644 index a9f98a66..00000000 --- a/skills/treeseed/references/execution.md +++ /dev/null @@ -1,10 +0,0 @@ -# Execution work - -Use execution resources to understand agents, provider connections, capacity, API-derived plans, time-based workdays, assignments, and durable operation status. External assistants remain external principals. - -- Inspect capacity and plan explanations; do not author derived capacity plans, reservations, leases, or settlements. -- Plan a workday from high-level intent. Start only the exact fresh preflight receipt returned by the API, and accept stale-plan rejection rather than silently recalculating. -- Follow assignment and workday resource links for progress, cancellation, interruption, return, and settlement. -- Invoke project-agent chat only through the explicit governed chat capability. The returned actor chain and invocation record determine whether delegation occurred. -- Never pass provider credentials, GitHub credentials, host authority, repository write credentials, or TreeDX secrets into an agent workspace. -- If the server does not advertise an operation, it is unavailable. Do not emulate it with raw REST, Git, database, or provider calls. diff --git a/skills/treeseed/references/governance.md b/skills/treeseed/references/governance.md deleted file mode 100644 index 94a1401e..00000000 --- a/skills/treeseed/references/governance.md +++ /dev/null @@ -1,9 +0,0 @@ -# Governance work - -Use the server's current semantic resources for questions, objectives, proposals, decisions, discussions, estimates, reviews, and findings. Do not infer approval from comments, labels, reactions, or an external host's state. - -- Read the proposal, its evidence, current revision, and decision state before commenting or reviewing. -- Keep plans, estimates, findings, and summaries attached to the returned governed lineage. -- Acting work requires the API's accepted decision and execution evidence. Planning or research may be admitted under a workday profile, but it does not mint acting authority. -- Treat a merge, provider receipt, or external PR as observed evidence until TreeSeed adopts it through an authoritative operation. -- For high-risk decisions, pass the server's exact confirmation request back to the accountable human without rewriting its arguments. diff --git a/skills/treeseed/references/knowledge.md b/skills/treeseed/references/knowledge.md deleted file mode 100644 index fe1199ca..00000000 --- a/skills/treeseed/references/knowledge.md +++ /dev/null @@ -1,53 +0,0 @@ -# Knowledge work - -Start by discovering the connected server's current knowledge and question resources. Prefer resource reads and search over broad mutation tools, and preserve project/team scope in every request. - -- Questions drive research; knowledge records and TreeDX projections hold the durable result. -- Fetch the current record and its revision before updating it. Preserve citations, provenance, project scope, and returned concurrency evidence. -- Use subscriptions for changing discussions or knowledge projections when advertised. -- TreeDX remains canonical for content. A control-plane projection or receipt is not permission to bypass TreeDX custody or write directly to its storage. -- If research should become governed work, hand it into the proposal/decision lifecycle described in [governance.md](governance.md). - -## Query a project library with `trsd` - -Resolve the project binding before relying on results: - -```sh -trsd library show --json -trsd library status --json -``` - -`` may be an unambiguous project slug or UUID. Status must report a bound repository and healthy search index. Treat missing bindings, unavailable indexes, moved refs, and empty error responses as failures. - -Discover and read repository-root collections: - -```sh -trsd library paths --prefix agents --ref --json -trsd library search "release policy" --path knowledge --ref --json -trsd library read agents/engineer.mdx --ref --json -trsd library query "active agents" --model agent --ref --json -trsd library context "what governs this change?" --ref --max-items 20 --max-tokens 8000 --json -``` - -Prefer the exact `resolvedRef` returned by TreeDX for subsequent calls. Libraries use top-level paths such as `agents/`, `books/`, `knowledge/`, `notes/`, and `questions/`; never prepend `src/content`. - -## Organize and save knowledge - -All changes use governed TreeDX workspaces: - -```sh -trsd library workspace create --json -trsd library workspace read --json -trsd library workspace write --input draft.yaml --json -trsd library workspace diff --json -trsd library workspace submit --version --message "Describe the knowledge change" --json -trsd library reviews list --team --json -trsd library reviews decide --input decision.yaml --json -trsd library reviews publish --input publication.yaml --json -``` - -Use `workspace abandon --version ` only for an unsubmitted draft. Mutation input belongs in files or stdin-capable clients, never in arguments when it contains document bodies or sensitive material. Publication must verify the reviewed commit at the upstream exact ref. - -## Local diagnosis - -Development state is mounted beneath the Platform workspace at `.treeseed/data`. It is visible for diagnostics only. Use TreeDX, control-plane, MCP, or `trsd` APIs for every read that informs work and every mutation; never repair repositories, refs, indexes, databases, or credentials by editing mounted files. diff --git a/skills/treeseed/references/mcp.md b/skills/treeseed/references/mcp.md deleted file mode 100644 index 87dc3a21..00000000 --- a/skills/treeseed/references/mcp.md +++ /dev/null @@ -1,10 +0,0 @@ -# MCP connection behavior - -The accepted server speaks stateless Streamable HTTP MCP `2026-07-28`. Begin with server discovery, then list the capabilities relevant to the task. Runtime discovery is authoritative over the pinned receipt when the server presents a newer compatible catalog. - -- Use advertised input/output schemas, semantic annotations, and OAuth scope challenges. -- Follow `treeseed://` resources and templates instead of inventing REST paths. Use completion for resource or prompt arguments when available. -- Use resource subscriptions/listen for durable changes and honor cancellation and progress notifications. -- An `input_required` response contains signed, expiring, single-use state bound to the principal, OAuth client, operation, and exact arguments. Never decode it into authority, replay it, or transplant it between clients. -- Treat RFC 9457 problems and TreeSeed blockers as typed outcomes. Preserve request and trace identifiers when reporting failures. -- Do not request legacy initialization, session, roots, sampling, or MCP logging behavior. Do not expose credentials in prompts, content, resources, logs, or tool results. diff --git a/skills/treeseed/references/projects.md b/skills/treeseed/references/projects.md deleted file mode 100644 index fbea962d..00000000 --- a/skills/treeseed/references/projects.md +++ /dev/null @@ -1,9 +0,0 @@ -# Project and repository work - -Resolve team and project context from visible resources rather than guessing identifiers. When names are ambiguous, fetch the candidates and ask the user to choose. - -- Read project access, current revision, repository topology, and provider status before mutation. -- Use catalogued provider and repository operations. Never construct GitHub API calls, raw control-plane URLs, commit-authority fields, or integration receipts on TreeSeed's behalf. -- Git commits remain native Git objects. Issues and pull requests are provider projections bound to governed work; they do not independently grant TreeSeed authority. -- Archive, withdraw, or supersede when the server offers those lifecycle operations. Treat deletion, credential changes, authority expansion, and production changes as confirmation-bearing work. -- Market and Market API are external projects and never Platform-custodied repositories or deployment resources. diff --git a/templates/platform-external-codex/template.config.json b/templates/platform-external-codex/template.config.json deleted file mode 100644 index 1c4b45b6..00000000 --- a/templates/platform-external-codex/template.config.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-external-codex", - "displayName": "External-control-plane Platform with Codex", - "description": "A TreeSeed Platform using an explicit Admin API endpoint and external Codex execution.", - "category": "platform", - "tags": ["platform", "external", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.0", - "variables": [ - { "name": "Control-plane URL", "token": "__CONTROL_PLANE_BASE_URL__", "deriveFrom": "controlPlaneBaseUrl", "required": true }, - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "external", "baseUrl": "__CONTROL_PLANE_BASE_URL__" }, - "processing": { "mode": "team-owned" }, - "admin": { "enabled": true }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["admin", "agentProvider"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-external-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-external-codex/template/seeds/treeseed.yaml b/templates/platform-external-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-external-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml b/templates/platform-external-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-external-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-external-codex/template/treeseed.site.yaml b/templates/platform-external-codex/template/treeseed.site.yaml deleted file mode 100644 index 2659b73c..00000000 --- a/templates/platform-external-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: external, baseUrl: __CONTROL_PLANE_BASE_URL__ } -hub: { mode: customer_hosted } -runtime: { mode: byo_attached, registration: optional } -processing: { mode: team-owned, providerRef: codex-sub } -surfaces: { web: { enabled: true }, admin: { enabled: true }, api: { enabled: false } } -services: - admin: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } diff --git a/templates/platform-local-managed-ai/template.config.json b/templates/platform-local-managed-ai/template.config.json deleted file mode 100644 index dec73a69..00000000 --- a/templates/platform-local-managed-ai/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-local-managed-ai", - "displayName": "Local managed Platform with TreeSeed AI", - "description": "A sovereign local TreeSeed control plane with the optional TreeSeed AI appliance.", - "category": "platform", - "tags": ["platform", "local", "managed", "ai"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.59", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "managed" }, - "processing": { "mode": "local" }, - "admin": { "enabled": false }, - "executionProvider": "treeseed-ai", - "aiAppliance": true, - "services": ["api", "treeseedDatabase", "operationsRunner", "treedx", "agentProvider", "aiAppliance"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-local-managed-ai/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-local-managed-ai/template/seeds/treeseed.yaml b/templates/platform-local-managed-ai/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-local-managed-ai/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-local-managed-ai/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-ai/template/treeseed.site.yaml b/templates/platform-local-managed-ai/template/treeseed.site.yaml deleted file mode 100644 index 45089450..00000000 --- a/templates/platform-local-managed-ai/template/treeseed.site.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } -development: - local: - marketConnectivity: disabled - inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-treeseed } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } - aiAppliance: { enabled: true, provider: local } -publicTreeDxFederation: {} diff --git a/templates/platform-local-managed-codex/template.config.json b/templates/platform-local-managed-codex/template.config.json deleted file mode 100644 index a77dc8bb..00000000 --- a/templates/platform-local-managed-codex/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-local-managed-codex", - "displayName": "Local managed Platform with Codex", - "description": "A sovereign local TreeSeed control plane with external Codex execution.", - "category": "platform", - "tags": ["platform", "local", "managed", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.59", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "managed" }, - "processing": { "mode": "local" }, - "admin": { "enabled": false }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["api", "treeseedDatabase", "operationsRunner", "treedx", "agentProvider"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-local-managed-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-local-managed-codex/template/seeds/treeseed.yaml b/templates/platform-local-managed-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-local-managed-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml b/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-local-managed-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-local-managed-codex/template/treeseed.site.yaml b/templates/platform-local-managed-codex/template/treeseed.site.yaml deleted file mode 100644 index 3751753f..00000000 --- a/templates/platform-local-managed-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } -development: - local: - marketConnectivity: disabled - inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-sub } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } -publicTreeDxFederation: {} diff --git a/templates/platform-market-codex/template.config.json b/templates/platform-market-codex/template.config.json deleted file mode 100644 index beb944b0..00000000 --- a/templates/platform-market-codex/template.config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "schemaVersion": 2, - "id": "platform-market-codex", - "displayName": "Market-connected Platform with Codex", - "description": "A TreeSeed Platform using the immutable Market gateway and external Codex execution.", - "category": "platform", - "tags": ["platform", "market", "codex"], - "templateVersion": "3.0.0", - "templateApiVersion": 2, - "minCliVersion": "0.12.0", - "variables": [ - { "name": "Runtime portfolio username", "token": "__PORTFOLIO_USERNAME__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio email", "token": "__PORTFOLIO_EMAIL__", "deriveFrom": "runtime" }, - { "name": "Runtime portfolio password", "token": "__PORTFOLIO_PASSWORD__", "deriveFrom": "runtime" }, - { "name": "Runtime Mailpit URL", "token": "__PORTFOLIO_MAILPIT_URL__", "deriveFrom": "runtime" } - ], - "managedSurface": { - "coreManaged": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"], - "validatedOnly": ["treeseed.site.yaml", "seeds/treeseed.yaml", "treeseed.capacity-provider.yaml", "scenes/team-project-portfolio-demo.yaml"] - }, - "platform": { - "controlPlane": { "mode": "market-passthrough" }, - "processing": { "mode": "market-assigned" }, - "admin": { "enabled": true }, - "executionProvider": "codex", - "aiAppliance": false, - "services": ["admin"], - "seeds": ["seeds/treeseed.yaml"], - "scenes": ["scenes/team-project-portfolio-demo.yaml"] - }, - "testing": { "smokeCommand": "npx trsd platform status --json", "buildCommand": "npm run verify" } -} diff --git a/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml b/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml deleted file mode 100644 index 47793867..00000000 --- a/templates/platform-market-codex/template/scenes/team-project-portfolio-demo.yaml +++ /dev/null @@ -1,731 +0,0 @@ -schemaVersion: treeseed.scene/v1 -id: team-project-portfolio-demo -title: Team Project Portfolio Demo -description: >- - Register a user, create the TreeSeed team, and prepare portfolio projects for research and engineering work. This scene is intentionally practical: it should expose real admin-flow, project-launch, Mailpit, recording, rendering, and training-output gaps while serving as a central TreeSeed acceptance test harness and demo / educational video generator scenario. -audience: - - evaluator - - operator - - trainee - -mode: - test: false - demo: true - training: true - -runtime: - mode: training - timeouts: - sceneSeconds: 1800 - chapterSeconds: 600 - stepSeconds: 120 - checkpoints: - enabled: true - defaultResumable: true - everyStep: true - progress: - heartbeatSeconds: 15 - failure: - continueOnFailure: true - -target: - app: market - environment: local - baseUrl: auto - browser: chromium - viewport: - width: 1600 - height: 900 - -devices: - defaultProfile: desktop - profiles: - - id: desktop - title: Desktop - orientation: landscape - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - output: - width: 1920 - height: 1080 - deviceScaleFactor: 1 - isMobile: false - hasTouch: false - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: desktop - - id: tablet - title: Tablet - orientation: landscape - viewport: - width: 1024 - height: 768 - video: - width: 1024 - height: 768 - output: - width: 1440 - height: 1080 - deviceScaleFactor: 1 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: tablet - - id: mobile - title: Mobile - orientation: portrait - viewport: - width: 390 - height: 844 - video: - width: 390 - height: 844 - output: - width: 1080 - height: 1920 - deviceScaleFactor: 2 - isMobile: true - hasTouch: true - browserFrame: - enabled: false - title: Team Project Portfolio Demo - chrome: mobile - -setup: - dev: - required: true - command: trsd dev start --web-runtime local --json - reuseExisting: true - -artifacts: - trace: true - video: true - screenshots: true - console: true - network: true - timeline: true - appLogs: true - -render: - remotion: - composition: treeseed-training-default - output: - format: mp4 - fps: 30 - resolution: - width: 1920 - height: 1080 - capture: - viewport: - width: 1600 - height: 900 - video: - width: 1600 - height: 900 - evidenceFit: fixed-browser - browserFrame: - enabled: false - title: Team Project Portfolio Demo - -chapters: - - id: registration - title: Register a portfolio owner - startsAt: open-register - - id: email-confirmation - title: Confirm the account through Mailpit - startsAt: open-mailpit - - id: team-setup - title: Create the TreeSeed team - startsAt: verify-admin-home - - id: portfolio-projects - title: Prepare portfolio projects - startsAt: open-new-project-bylaws - - id: gap-review - title: Capture linked project gaps - startsAt: open-new-project-sdk - -overlays: - - id: scenario-purpose - at: open-register - renderer: remotion - type: callout - variant: panel - region: top-right - style: - tone: brand - shadow: medium - radius: 8 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - position: - x: 100 - y: 10 - unit: percent - - at: 0.18 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - - at: 1 - unit: progress - opacity: 1 - position: - x: 82 - y: 10 - unit: percent - objects: - - id: acceptance-pulse - type: circle - position: - x: 8 - y: 22 - size: - width: 14 - height: 14 - style: - tone: success - opacity: 0.82 - motion: - keyframes: - - at: 0 - unit: progress - scale: 0.8 - opacity: 0.45 - - at: 0.5 - unit: progress - scale: 1.28 - opacity: 1 - - at: 1 - unit: progress - scale: 0.8 - opacity: 0.45 - text: This demo doubles as a product acceptance probe and an educational video source. - - id: mailpit-selector-risk - at: open-mailpit - renderer: remotion - type: callout - text: Mailpit confirmation is attempted through the browser so local email and auth gaps are visible in the run artifacts. - - id: team-portfolio-context - at: open-new-team - renderer: remotion - type: callout - text: The TreeSeed team will own a portfolio of research and engineering projects. - - id: bylaws-project-context - at: open-new-project-bylaws - renderer: remotion - type: callout - text: Bylaws is expected to be a new research-template project with no upstream remote. - - id: sdk-linked-project-gap - at: capture-sdk-linking-gap - renderer: remotion - type: callout - text: >- - Expected: link github.com/treeseed-ai/sdk and request a docs repository. Current gap: this linked-project operation is not exposed by the scene runtime or obvious project UI. - - id: final-gap-summary - at: review-gap-summary - renderer: remotion - type: callout - text: Review the screenshots, timeline, captions, transcript, and evidence bundle to prioritize product and selector hardening. - -diagrams: - - id: local-runtime-topology - renderer: remotion - component: DevRuntimeTopologyDiagram - at: open-mailpit - placement: overlay - durationSeconds: 12 - style: - tone: info - shadow: medium - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0 - scale: 0.96 - - at: 0.2 - unit: progress - opacity: 1 - scale: 1 - - at: 1 - unit: progress - opacity: 1 - scale: 1 - objects: - - id: mail-flow-cursor - type: arrow - from: - x: 18 - y: 80 - unit: percent - to: - x: 84 - y: 80 - unit: percent - style: - tone: brand - opacity: 0.78 - motion: - keyframes: - - at: 0 - unit: progress - opacity: 0.2 - - at: 0.6 - unit: progress - opacity: 1 - - at: 1 - unit: progress - opacity: 0.7 - props: - title: Local demo runtime - surfaces: - - id: browser - label: Browser scene - kind: playwright - - id: web - label: Local web app - kind: astro - - id: api - label: Local API - kind: treeseed-api - - id: mailpit - label: Mailpit - kind: email - links: - - from: browser - to: web - label: drives UI - - from: web - to: api - label: auth and project calls - - from: api - to: mailpit - label: confirmation email - - id: project-launch-lifecycle - renderer: remotion - component: OperationLifecycleDiagram - at: submit-bylaws-project - placement: overlay - durationSeconds: 12 - props: - title: Project launch lifecycle - states: - - form-ready - - submitted - - queued - - deploying - - review - activeState: review - - id: scene-timeline-review - renderer: remotion - component: SceneExecutionTimelineDiagram - at: review-gap-summary - placement: overlay - durationSeconds: 10 - props: - title: Portfolio demo execution timeline - showCheckpoints: true - showSegments: true - -training: - enabled: true - captions: - enabled: true - formats: - - vtt - - srt - maxCueSeconds: 6 - renderInTrainingVideo: true - transcript: - enabled: true - formats: - - json - - markdown - narration: - enabled: true - style: instructional - includeDiagnostics: true - glossary: - enabled: true - terms: - - term: team - definition: A TreeSeed ownership boundary for projects, hosts, work, and knowledge. - sourceStep: open-new-team - groupIds: - - portfolio - - term: project - definition: A managed TreeSeed work surface that can own content, repositories, hosting, and launch evidence. - sourceStep: open-new-project-bylaws - groupIds: - - portfolio - - term: research template - definition: The starter used for research and knowledge-oriented projects such as Bylaws. - sourceStep: choose-research-template - groupIds: - - template - - term: linked repository - definition: An existing upstream repository that should be connected to a TreeSeed project instead of creating a new source repository. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: docs repository - definition: A documentation repository expected for the linked SDK software project. - sourceStep: capture-sdk-linking-gap - groupIds: - - gap - - term: Mailpit - definition: The local email inbox used to confirm registration during the demo. - sourceStep: open-mailpit - groupIds: - - local-dev - - term: checkpoint - definition: A resumable scene runtime marker that helps diagnose and continue long workflows. - sourceStep: review-gap-summary - groupIds: - - scene-runtime - chapterClips: - enabled: true - format: manifest - -workflow: - - id: open-register - title: Open registration for a normal user - action: - goto: /auth/register?returnTo=/app - expect: - visible: - - role: heading - name: Create account - - - id: fill-first-name - title: Enter the user's first name - action: - fill: - css: input[name="firstName"] - internal: true - value: Test - expect: - visible: - - css: input[name="firstName"] - internal: true - - - id: fill-last-name - title: Enter the user's last name - action: - fill: - css: input[name="lastName"] - internal: true - value: Portfolio - expect: - visible: - - css: input[name="lastName"] - internal: true - - - id: fill-username - title: Choose a unique username - action: - fill: - css: input[name="username"] - internal: true - value: __PORTFOLIO_USERNAME__ - expect: - visible: - - css: input[name="username"] - internal: true - - - id: fill-email - title: Enter the generated local email address - action: - fill: - css: input[name="email"] - internal: true - value: __PORTFOLIO_EMAIL__ - expect: - visible: - - css: input[name="email"] - internal: true - - - id: fill-password - title: Enter a strong generated password - action: - fill: - css: input[name="password"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="password"] - internal: true - - - id: fill-confirm-password - title: Confirm the generated password - action: - fill: - css: input[name="confirmPassword"] - internal: true - value: __PORTFOLIO_PASSWORD__ - expect: - visible: - - css: input[name="confirmPassword"] - internal: true - - - id: submit-registration - title: Submit the registration form - action: - click: - role: button - name: Create account - expect: - text: Check your email - checkpoint: - resumable: true - - - id: open-mailpit - title: Open the local Mailpit inbox - action: - goto: __PORTFOLIO_MAILPIT_URL__ - demoOnly: true - checkpoint: - resumable: true - - - id: open-confirmation-email - title: Open the newest confirmation email - action: - click: - css: a[href^="/view/"]:has-text("__PORTFOLIO_EMAIL__") - brittle: true - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-confirmation-link - title: Open the email confirmation link - action: - mailpitConfirmLatest: - mailpitUrl: __PORTFOLIO_MAILPIT_URL__ - email: __PORTFOLIO_EMAIL__ - subjectIncludes: Confirm - expect: - urlIncludes: /app - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: verify-admin-home - title: Confirm the user can see the admin homepage - action: - goto: /app - expect: - visible: - - role: heading - name: Start - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-team - title: Open the new team screen - action: - goto: /app/teams/new - expect: - visible: - - role: heading - name: Create team - continueOnFailure: true - - - id: fill-team-slug - title: Enter the TreeSeed team slug - action: - fill: - css: input[name="name"] - internal: true - value: treeseed - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-team-display-name - title: Enter the TreeSeed team display name - action: - fill: - css: input[name="displayName"] - internal: true - value: TreeSeed - expect: - visible: - - css: input[name="displayName"] - internal: true - continueOnFailure: true - - - id: fill-team-summary - title: Describe the team project portfolio - action: - fill: - css: textarea[name="profileSummary"] - internal: true - value: TreeSeed owns a portfolio of research and engineering projects, including governance research and software platform work. - expect: - visible: - - css: textarea[name="profileSummary"] - internal: true - continueOnFailure: true - - - id: submit-team - title: Create the TreeSeed team - action: - click: - role: button - name: Create team - expect: - urlIncludes: /app/teams - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-bylaws - title: Open the new project screen for Bylaws - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-bylaws-name - title: Enter the Bylaws project name - action: - fill: - css: input[name="name"] - internal: true - value: Bylaws - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-slug - title: Enter the Bylaws project slug - action: - fill: - css: input[name="slug"] - internal: true - value: bylaws - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: choose-research-template - title: Choose the research template - action: - click: - css: label[for="template-research"] - internal: true - expect: - visible: - - css: label[for="template-research"] - internal: true - continueOnFailure: true - - - id: fill-bylaws-objective - title: Describe the Bylaws research objective - action: - fill: - css: textarea[name="coreObjective"] - internal: true - value: Build a research project for organizing TreeSeed bylaws, governance notes, decision records, and portfolio policy. - expect: - visible: - - css: textarea[name="coreObjective"] - internal: true - continueOnFailure: true - - - id: submit-bylaws-project - title: Submit the Bylaws project launch - action: - click: - role: button - name: Create project - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: open-new-project-sdk - title: Open the new project screen for SDK - action: - goto: /app/projects/new - expect: - text: Create hosted project - continueOnFailure: true - - - id: fill-sdk-name - title: Enter the SDK project name - action: - fill: - css: input[name="name"] - internal: true - value: SDK - expect: - visible: - - css: input[name="name"] - internal: true - continueOnFailure: true - - - id: fill-sdk-slug - title: Enter the SDK project slug - action: - fill: - css: input[name="slug"] - internal: true - value: sdk - expect: - visible: - - css: input[name="slug"] - internal: true - continueOnFailure: true - - - id: capture-sdk-linking-gap - title: Capture the linked SDK project gap - action: - pause: - mode: timed - durationSeconds: 6 - prompt: >- - Expected linked software project: public GitHub repository github.com/treeseed-ai/sdk with a docs repository request. Current gap: this operation is not exposed by the scene runtime or obvious project UI. - demoOnly: true - continueOnFailure: true - checkpoint: - resumable: true - - - id: review-gap-summary - title: Review portfolio demo evidence and gaps - action: - goto: /app/projects - expect: - visible: - - css: "body" - internal: true - continueOnFailure: true - checkpoint: - resumable: true diff --git a/templates/platform-market-codex/template/seeds/treeseed.yaml b/templates/platform-market-codex/template/seeds/treeseed.yaml deleted file mode 100644 index fac2b439..00000000 --- a/templates/platform-market-codex/template/seeds/treeseed.yaml +++ /dev/null @@ -1,77 +0,0 @@ -schemaVersion: treeseed.seed-bundle/v3 -name: treeseed -version: 4 -description: Reproducible local TreeSeed portfolio with one unified capacity-provider battery. -environments: [local, staging, prod] -digest: sha256:e983c02364fb1e292018acf264c447da697d3fc106608ba76ce8d9656671c116 -resources: - teams: - - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } - memberships: - - { key: 'membership:treeseed/adrian-webb', team: 'team:treeseed', principal: { kind: user, email: 'adrian.webb@knowledge.coop' }, roles: [team_owner], missingUser: reject } - - key: membership:treeseed/automation - team: team:treeseed - principal: { kind: service-principal, key: 'service-principal:treeseed/automation', displayName: TreeSeed Automation, interactiveLogin: false } - roles: [team_owner] - projects: - - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Shared Debian bootstrap, host manager, edge, and component integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } - - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } - - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } - - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } - - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } - - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } - - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } - - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Unified capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } - - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } - - { key: 'project:treeseed/ai', team: 'team:treeseed', slug: ai, name: TreeSeed AI, description: AI integration package., kind: package, primaryRepository: 'repository:treeseed/ai', libraryRepository: 'repository:treeseed/ai-library', metadata: { packageId: '@treeseed/ai' } } - - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } - - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } - - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product managed independently from Platform deployment., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } - - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service managed independently from Platform deployment., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - repositories: - - &platform_repo { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'git@github.com:treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'git@github.com:treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'git@github.com:treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, submodulePath: packages/api, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'git@github.com:treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, submodulePath: packages/treedx, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'git@github.com:treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, submodulePath: packages/sdk, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'git@github.com:treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, submodulePath: packages/ui, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'git@github.com:treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, submodulePath: packages/cli, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'git@github.com:treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, submodulePath: packages/core, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'git@github.com:treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, submodulePath: packages/admin, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'git@github.com:treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, submodulePath: packages/agent, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'git@github.com:treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, submodulePath: packages/reviewer, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/ai', project: 'project:treeseed/ai', role: primary, provider: github, owner: treeseed-ai, name: ai, gitUrl: 'git@github.com:treeseed-ai/ai.git', defaultBranch: main, checkoutPath: packages/ai, submodulePath: packages/ai, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'git@github.com:treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: templates/engineering, submodulePath: templates/engineering, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'git@github.com:treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: templates/research, submodulePath: templates/research, repositoryPolicy: *public_repo } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'git@github.com:treeseed-ai/market.git', defaultBranch: main, checkoutPath: products/market, repositoryPolicy: *public_repo, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'git@github.com:treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: services/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { platformCustody: portfolio-only, deployableByPlatform: false } } - - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/ai-library', project: 'project:treeseed/ai', role: library, provider: github, owner: treeseed-ai, name: ai-library, gitUrl: 'https://github.com/treeseed-ai/ai-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'git@github.com:treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: fixtures, submodulePath: fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } -runtime: - capacityProviders: - - key: capacity-provider:treeseed/local - team: team:treeseed - environments: [local] - manifestDigest: sha256:9b3f675f40a7f23d66cc7429600d68438cb28ba866ebe4ce8688e240a4fa482c - manifestRef: treeseed.capacity-provider.yaml - approval: trusted-local-owner - projects: ['project:treeseed/platform', 'project:treeseed/deployment', 'project:treeseed/api', 'project:treeseed/treedx', 'project:treeseed/sdk', 'project:treeseed/ui', 'project:treeseed/cli', 'project:treeseed/core', 'project:treeseed/admin', 'project:treeseed/agent', 'project:treeseed/reviewer', 'project:treeseed/ai', 'project:treeseed/template-engineering', 'project:treeseed/template-research', 'project:treeseed/market', 'project:treeseed/market-api'] - allowedModes: [planning, acting] - requiredLanePurposes: [communication, platform, workday] diff --git a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml b/templates/platform-market-codex/template/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/templates/platform-market-codex/template/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/templates/platform-market-codex/template/treeseed.site.yaml b/templates/platform-market-codex/template/treeseed.site.yaml deleted file mode 100644 index 9f347117..00000000 --- a/templates/platform-market-codex/template/treeseed.site.yaml +++ /dev/null @@ -1,12 +0,0 @@ -name: TreeSeed Platform -slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: market-passthrough } -hub: { mode: treeseed_hosted } -runtime: { mode: none, registration: none } -processing: { mode: market-assigned, providerRef: codex-sub } -surfaces: { web: { enabled: true }, admin: { enabled: true }, api: { enabled: false } } -services: {} diff --git a/treeseed.capacity-provider.yaml b/treeseed.capacity-provider.yaml deleted file mode 100644 index d1aa071b..00000000 --- a/treeseed.capacity-provider.yaml +++ /dev/null @@ -1,1608 +0,0 @@ -schemaVersion: 5 -ownership: - type: team - teamId: team:treeseed -configuration: - generation: local-battery-v5 -identity: - privateKeyRef: data://identity-v3.json - displayName: TreeSeed local capacity battery -capacity: - maxConcurrentWorkers: 4 - cpuCores: 8 - memoryBytes: 17179869184 - maxActiveSeconds: 28800 - maxInputTokens: 4000000 - maxOutputTokens: 1000000 - maxCost: 100 - currency: USD - maxAttempts: 3 -credentialProfiles: [] -sandbox: - required: true - brokerSocket: /run/treeseed/sandbox/broker.sock - runtime: kata-runtime-rs-qemu - profiles: - - id: read - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 2 - memoryBytes: 4294967296 - diskBytes: 8589934592 - processLimit: 512 - outputBytes: 67108864 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: unit - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: integration - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 12884901888 - diskBytes: 25769803776 - processLimit: 2048 - outputBytes: 268435456 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: platform - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 8 - memoryBytes: 17179869184 - diskBytes: 34359738368 - processLimit: 4096 - outputBytes: 536870912 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - id: connected - guestImage: treeseed/sandbox-codex - guestImageDigest: sha256:9c9a7bc5361bfed2aaa380967af6992373310f5e3bb169bf92c7b86b688a681a - defaultDenyNetwork: true - resources: - cpuCores: 4 - memoryBytes: 8589934592 - diskBytes: 17179869184 - processLimit: 1024 - outputBytes: 134217728 - lineage: - baseImageDigest: sha256:81a790925bd78d55d44a20413fb721868424718c81ec64e49b5f09d733f6c19b - provenanceDigest: sha256:8b4c00d17e53e7c85517c28cd68afae9b6f7c5e731e1cd6cca1e8112a9ac26b0 - architectures: - - amd64 - - arm64 - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime -lanes: - - id: communication - purpose: communication - priority: 100 - reservedConcurrentWorkers: 1 - maxConcurrentWorkers: 2 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 120 - capabilities: - - treeseed.coordination.conversation - - treeseed.engineering.repository-analysis - - treeseed.research.synthesis - - id: platform - purpose: platform - priority: 70 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - capabilities: - - treeseed.engineering.architecture - - treeseed.engineering.code-change - - treeseed.engineering.review - - id: workday - purpose: workday - priority: 50 - reservedConcurrentWorkers: 0 - maxConcurrentWorkers: 4 - borrowWhenIdle: true - lendWhenIdle: true - reclaimPolicy: admission - queueLimit: 100 - timeoutSeconds: 900 - minimumAssignmentDuration: - amount: 600 - unit: seconds - capabilities: - - treeseed.coordination.planning - - treeseed.engineering.code-change - - treeseed.research.synthesis - - treeseed.publishing.documentation -adapters: - - id: codex-local - adapter: codex - isolation: microvm - module: module:codex-chat - profile: api - protocol: responses - model: - model: gpt-5.4 - credentialProfiles: [] - laneIds: - - communication - - platform - - workday - maxConcurrentWorkers: 4 - minimumAssignmentDuration: - amount: 600 - unit: seconds - nativeLimits: - availableAgentSeconds: 28800 - offers: - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-conversation - capabilities: - - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.conversation - version: 1.0.0 - digest: sha256:576049cf0d72cec60b40b77cc84bfd18b759b44a4934ec37f04dbc6a2d174d25 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a9b552d79b523213e786a29484ef6e284826ebcfbd3a062c032da7d9e0869cbf - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.question-answering - version: 1.0.0 - digest: sha256:328094f02972b190549cdfa2fa2a9edbcc07821e799bfe0c569c4abe11614ca2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:39fe0b10a800dd36fc8c7035715e4a808c44104f7f20299eded42b96be25059e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.planning - version: 1.0.0 - digest: sha256:9fba3d3ba6b70b0f8a887ca757e277de09986ac7483aac67816eacefef07ccd8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:00b835a65c702e39b151cdf2bd94befbbedac62b60cf3575ef3c0a1b290dc480 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.estimation - version: 1.0.0 - digest: sha256:ea59cd62f1c435c74e9d2ca3f2e0d7046477f68f42c40e19dc16ffaa9bfc44f5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:83d5ee3c2181782e6d643915e4ae37cb34169c858e6f746a9ca755dd6a403bac - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.review - version: 1.0.0 - digest: sha256:792d086c3b367ee614c8203970a4360ef11cfa7105b352d296c4bec8e5bcd2dd - tier: signed-attestation - status: passed - evidenceDigest: sha256:66e4b040c8a94c349289a7f07acb1231700585b0856299d6dca92d6d408d9d00 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.reporting - version: 1.0.0 - digest: sha256:4db038b93d9efa987f6c5eca3b78feb559bb476ff20a357c2bc65c8a8b41daa2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d425b3b427d362e47ae3e32d8bb8b13064c02c3da71ddcfc4575f8554724b238 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.human-task-routing - version: 1.0.0 - digest: sha256:0cea51ee8e57ef6154c980fba7030695397bffcc3fe764f4a78cec7c18c4f405 - tier: signed-attestation - status: passed - evidenceDigest: sha256:937046c64e9597bbbc54ae26b112114b2584af185090411ccac9b955ad9c00bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.coordination.decision-support - version: 1.0.0 - digest: sha256:5e5b8adbf05656bce2e78d5d7c4a5a1d58c1520fac5b36bd4681aa5340720a2a - tier: signed-attestation - status: passed - evidenceDigest: sha256:28eb940e75becc74a9714247e90e8ed76484e42d2cc70d54b78deaa2f1022961 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.web - version: 1.0.0 - digest: sha256:4eb312c242ccd113ad9f8c83ddb50c585d7ab838639ff3b41c75b1c217c0a371 - tier: signed-attestation - status: passed - evidenceDigest: sha256:aee4d7154c97dc8d799da461bd9d88d5121c34ef12e3a1438c06779b2f1d3c1d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.literature - version: 1.0.0 - digest: sha256:93c2c8d9681f38bca81ca49411a397a2536d39a94523e8a21de3efa6b5c669ee - tier: signed-attestation - status: passed - evidenceDigest: sha256:517ca3202ef6cb95a673daa750646a7d80f219388f65b1752faee095a2d7bf82 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.market - version: 1.0.0 - digest: sha256:1f6ab97b0944ee2eecc9f69b2b7862414048e11be13562171d7a951113096568 - tier: signed-attestation - status: passed - evidenceDigest: sha256:b1af7f34c0a60ef2f1700d2051549b949d672815daccd9ccc92bad42acf56798 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.repository - version: 1.0.0 - digest: sha256:6b23cf64d151bbea7e545f49990629563ea69fa6f61d669e344d1eb86101f7b7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1842c7cf44acdd2e1981cbe4384b63eb9e2279bb1620d983e4e252e891aba663 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.dataset-discovery - version: 1.0.0 - digest: sha256:ed4dd2b8fd9d8d758ac2c1428de77fd71945306114c9882857b855d4a6837b4a - tier: signed-attestation - status: passed - evidenceDigest: sha256:94e8c78eaef1493ffa605de466141b7ff21b9c69740b700204538ce40f231289 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.retrieval - version: 1.0.0 - digest: sha256:d49cfe884d57572929549581e66c5473a568b787f1db4b44ac5153ecb7193a1c - tier: signed-attestation - status: passed - evidenceDigest: sha256:443e3948cf18d69ccf65a8fb488c06e3844142d2d986ad78e3659e841cf664d0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.extraction - version: 1.0.0 - digest: sha256:2c06c4b2b37ff1373d402eee4d8c4b43953be52e25f74922db0274360f5ddd37 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bb2a200faac21c84957e2fe31aea5b159335054330c4fff31171c0f1b2e7f9c8 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.verification - version: 1.0.0 - digest: sha256:4f8fb5b7a790e1b6b33798bbb7bb90e3d48c528f728c721ecf265fd80c6e6e60 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f3210e0fc6ce9af459bab3a14e7da60f3094b0d7ad34f0528ee7594578f2bb8b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.citation - version: 1.0.0 - digest: sha256:2097ae23ecda75450f830b5827b393abeaee1068b3bdb4c60cc9e5f328a061d9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25e74a64e345070975da78db1c13f9e9bdeeca06d25f5161c994237750445b52 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.synthesis - version: 1.0.0 - digest: sha256:6355354f3b05f271a96ca2661dd4effd714056eae4bbb670c6b6f2d03f6ebf96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c060ce8fe18a418edd5e95a9f9d4ced0f2f0154166e3dd5cd5979144abd803 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.research.experimentation - version: 1.0.0 - digest: sha256:7c195c6f467e36ef12c898a2c5b28860c6ff37fbfbe6a97bdfeb1b60cb2f8d2e - tier: signed-attestation - status: passed - evidenceDigest: sha256:91e8a429f40a4efcebd0ed82830e575ed8ab67bb671c02bc19ac2e91682dff66 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:6369b7baf8c23f88b43af0cd7d7fa62320509fc17a98c3e17e5f2d6b55b91ed6 - sandboxProfileId: read - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-engineering - capabilities: - - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.architecture - version: 1.0.0 - digest: sha256:cf9fc9cd85d2fa3359c6e3c75af51bda72c978f57535ccb1557caf58620ae58f - tier: signed-attestation - status: passed - evidenceDigest: sha256:46ff88407b76223a3237f876cba5d656f5e686e02e8eb1528bcd6cccffb9424b - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.repository-analysis - version: 1.0.0 - digest: sha256:a95e6036e4f54be98a36717fe83d9a83da7fd57cf91dac69bdc6584c68e6f8b3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0d2b741f372f5fd96314e02e89592b3ed7712dc3c8b2e2b3b4e8204b82a4a031 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.code-change - version: 1.0.0 - digest: sha256:1a192328470f6299e7b569cbb3778bf64da08272619a4b4b96bc7ea3f6f978d5 - tier: signed-attestation - status: passed - evidenceDigest: sha256:011c1ec12817b7ac4ba7452d169fc68ad31bb4b32b1e7619ecc18ec25e8722eb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.refactoring - version: 1.0.0 - digest: sha256:d489b29b12e939514a0111ce85ae2ff0234c9c15cb91840bdbcd60d05d66c447 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d6c48df773412739aa3d6747513c760a093bb8981a7b5fbbcab29474ac90b3ec - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.dependency-update - version: 1.0.0 - digest: sha256:95f8816d9369d7dbf74955740f1a3c59e373d08b533578b21fc37ad4118d1980 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bf8e0f4a906565057e6c08de08a058c7ccdae320e3125faa1ca3351f2e4bbe22 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.build - version: 1.0.0 - digest: sha256:305090e9b6ff006b85d367cb6a1d781043be50c5f82fa8ceb26e39d48aa34e22 - tier: signed-attestation - status: passed - evidenceDigest: sha256:51f036ec8701399b98a84fc14ae16f955df1c6853050972bc9ae35828a057884 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.unit-testing - version: 1.0.0 - digest: sha256:5d0609a4887df8f4d824355629443c70c45aae88ec05553fea983d89b597cf1e - tier: signed-attestation - status: passed - evidenceDigest: sha256:0ff1e83378917fb0c6e89f7c7f42f8d1455756c59237f8f216164c55a73eecae - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.integration-testing - version: 1.0.0 - digest: sha256:5ad014e0c16459f5d08dcb163ef46bb6e935d25a95cabaab8729d26107da6e96 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a428b9e178dccea74f16d76e17a760adb374b9e7425269633dd985cedfcf1758 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.end-to-end-testing - version: 1.0.0 - digest: sha256:c5af48b981ebacab95a12d82144dae9d1ade6a3cfa58a142e11924830b7a5d03 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f34cfa85b70ceffc6f9cba98ae3d16e51032bb3052bebf91760cd532c6b9b93d - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.debugging - version: 1.0.0 - digest: sha256:93b3d423e3c342085887a504da7348dade4f53f18eb4a4d3690096209b7584d4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:18f43ca0e656e38487dd751e962fdbf3e1f491091d82ceb8965cafffb823e854 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.review - version: 1.0.0 - digest: sha256:162f589904aa1213e7d087e1dbf68517aa80870330848c42c2770a3b0adb6ab3 - tier: signed-attestation - status: passed - evidenceDigest: sha256:4c47d8d5ef871082ac5f478e1860f1d4c44ae932c3a1198db613aee28dc675a7 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.performance-analysis - version: 1.0.0 - digest: sha256:0f612bf1fca8fe67bcf6a7717e06d5cdf337eb07f7eeb68012ebdfa98533d6b8 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3a56417dd80da4dfb22dca5f3494ac8249652b502ac70f7f4acecf95d0cf424a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.accessibility - version: 1.0.0 - digest: sha256:6d9b37e8cf00cfabf0e9390f33c458a3ae9a19d37c7014d6a1b64b4a5ff5ce18 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1637a612e37923e6d2a34960fd93ac2124127c85ef24a26f25a09d4386d35edb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.engineering.infrastructure - version: 1.0.0 - digest: sha256:0ee8410f4d1d78d7392d2cd63fa5677390e57ac067c51bac596e01320967f971 - tier: signed-attestation - status: passed - evidenceDigest: sha256:bfc2b4beee4a545a2139dc2c2e4e2d81a25778685cf0f6ddcc243fd6e9dd0244 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:0e354b524abd06b16a5148ca6bf0708c6825ca9f26515bf532933e9ebbbceb52 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-data - capabilities: - - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.source-connection - version: 1.0.0 - digest: sha256:5b01c6541698567d7c214c212e396384b392a5f69011e4ff59da0ef5cf7f0ef9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:faac7e2524ac64d33821b6ebaa4fe99031c67b535879addcb925bfafe730de1e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.extraction - version: 1.0.0 - digest: sha256:37745a099486cfa3a99ed91175303b61d7861cf96a64e763f6354bfa48928ab7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:783ef0ca5ec50d9c6c3ef77f28287cfe3fb6c5af86590b5ca288abd9d1bc2954 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.ingestion - version: 1.0.0 - digest: sha256:475fc6c430db50498e943a9a1785a652727cf7aa12888f661f1be020f82ff060 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0a1295f3eae7b8d28bf20c8f0530d2cb59cd57ede0addd30043b20efb14f4928 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.synchronization - version: 1.0.0 - digest: sha256:77dc67104ee56594f6c03890130d9592e71e9ca2d5507375d5404a5f517dadbc - tier: signed-attestation - status: passed - evidenceDigest: sha256:0e64fb5007765f7759728a9d614ac683cd346e275053a26c201ba318228853b5 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-inference - version: 1.0.0 - digest: sha256:59ac4cc5b87f1f2b304cb683c8ffd8005035f96357bf868243920d60e095d8c9 - tier: signed-attestation - status: passed - evidenceDigest: sha256:2169392b4067f4ea1741ac52c7c111a1d87808d28ad796bd048cec8547c80417 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.schema-mapping - version: 1.0.0 - digest: sha256:6685e2ee388fc8d9e91458a5d128a447278ec24e5b099d0ea51c02a3c3331b77 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f73262e8bda7a62b71fc56aa9ece201f1938b1dd2fedb4ddb9539445405200f3 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.normalization - version: 1.0.0 - digest: sha256:3ed0fb171aa3d3efa309dfb87298882f8cef96504f63b69ba05f4fc09e7c76b2 - tier: signed-attestation - status: passed - evidenceDigest: sha256:5175c095e66dc6f8f9ea38bb9c00f15b371db4ab9c18133f74efc4d7296efee1 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.transformation - version: 1.0.0 - digest: sha256:a51756e63ae472736ca5d92828857a21d2569f17ddf9da59dce758d4ed0040f7 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d926a7f973f58d59fa8010674adba7e695bd3eac1324c67face4cee37cc4e67e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.enrichment - version: 1.0.0 - digest: sha256:98fd215c48d0275a563c3c2494d4ec746a1b636246eed7816e8d6bb618777806 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f924ae32c4f26f6127da478bd6a4069b9f1a75a7e8bd9005af804e778b83ddbb - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.entity-resolution - version: 1.0.0 - digest: sha256:e42233db1be3a1e9e3411b8c4d9f50e092722006b21d8ba4c1e3105cdc93363a - tier: signed-attestation - status: passed - evidenceDigest: sha256:43dc43c81a4b74dec2d04f9abc76e9c8a15f199feb8762b8884fe507c932e7de - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.validation - version: 1.0.0 - digest: sha256:a303b8cc26cab8e3b8fa9689e3f6c3b18df5ffa899e24e5793cfcc811b9f4061 - tier: signed-attestation - status: passed - evidenceDigest: sha256:f232e197be7e55ab9a0dfa94cc6f0fc82cb71b5ba6fd8d3ce56ffff1b8ae56bc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.quality-analysis - version: 1.0.0 - digest: sha256:cd9aaaa7a930e6107c02526e78c63ed3c72d4d366a84a73be67b913755cd8e06 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c8c872654f365a337d49647d9d5ac68e7675a75ba5186690fd3d35ae489c0381 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.lineage - version: 1.0.0 - digest: sha256:8ab128f5fa3dd68b25a4c4842d61d5ac41b333f1f7d6fa6e419d6a4939c8c345 - tier: signed-attestation - status: passed - evidenceDigest: sha256:769498eb23220cc0b1b9a5178332d39d4a85f9cb8247e8a99fe8eae46c3719e0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.statistical-analysis - version: 1.0.0 - digest: sha256:f6790200a9e12cfd1c8443d2acf359231a3ef0839106b0e7fb8926a4f95a5ce0 - tier: signed-attestation - status: passed - evidenceDigest: sha256:12e420e67f3f1e15fe2e6592897db11445a844838382bdcaa271bcef42285b5c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.visualization - version: 1.0.0 - digest: sha256:ec2d5a44e660113df5e7582d73ca4dffd00d83bbd83a131ed6a07580d5edcfdf - tier: signed-attestation - status: passed - evidenceDigest: sha256:6dd89c53db475b306e3ece1b7b4ed7402718ea6b22380376ef5d55b48ee5d040 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.data.export - version: 1.0.0 - digest: sha256:f823e9404981572aa23f7d6e7032bc71a96b7827905617e2645c7c697ee07d53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:a3f57d46f427160489d2fee90f7ee229abd3969366ffd47eb6242e5915643200 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:aaf1eada4d99684179bc7fd45b0bc2ad24441c494f3d4b8a7600ece09f5f5d15 - sandboxProfileId: unit - - offer: - schemaVersion: treeseed.capability-offer/v1 - offerId: codex-publishing - capabilities: - - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - features: [] - configurationSupport: - instructions.system: - required: true - preferred: true - instructions.task: - required: true - preferred: true - instructions.templates: - required: true - preferred: true - context.queries: - required: true - preferred: true - tools.policy: - required: true - preferred: true - intelligence.reasoning-effort: - required: true - preferred: true - permissionClasses: - - content-policy - - repository-policy - - network-policy - - shell-policy - - tool-policy - contextModes: - - inline - - manifest - inputContracts: [] - outputContracts: [] - interactionModes: - - asynchronous - - interactive - conformance: - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.drafting - version: 1.0.0 - digest: sha256:a6f6770e1f6026c84b85cf63b9d47ad079cf5dc3725aa14d4f447fe445841c47 - tier: signed-attestation - status: passed - evidenceDigest: sha256:44a4c5277995ca1d976c13975f6de1e09c5644a7ac1f9462eb575a6c325254b2 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.editing - version: 1.0.0 - digest: sha256:88bdf58385154e97893d173171be99ad1d31a43f51b8fe94193551423fb22e92 - tier: signed-attestation - status: passed - evidenceDigest: sha256:3b97c4b5f9c564ce075cb42426b9e41f6919dd6679cdbc7f7bf58af452fac10e - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.translation - version: 1.0.0 - digest: sha256:c467bf962015fe52f9728bd821befe6f87457cd6d891f01ae57a4f90ef8226c4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:1103b25ab7c4b8369b228e90384c02ecc99a84c9c1d58c6441b4e1b855c0052a - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.structured-content - version: 1.0.0 - digest: sha256:67b6bc51428038c5db0b02b50b57ef8f10520f52af7e8c0c834f1768b7444d7d - tier: signed-attestation - status: passed - evidenceDigest: sha256:72ca4f3487beac5c9278c41561f4d8949bf212fb40ad61cd25eb7d7d8b4cb433 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.documentation - version: 1.0.0 - digest: sha256:429b0d777d5cfd6061d17c70f4b004bab723e2d8b68fbb31bc58cde8ec7b921b - tier: signed-attestation - status: passed - evidenceDigest: sha256:7795edc346f7099638abe9d7ed5a290724de9ed79635b59d4ff69145cd065d04 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.cms - version: 1.0.0 - digest: sha256:c717b098a360ae11d05d5a3cb4cbdeb4340259aa99d8e7ef95515aff51b510ab - tier: signed-attestation - status: passed - evidenceDigest: sha256:bc04c27a73f848910c3d1354aa291ceb37dfcf166d34d614781cd26714099db0 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.repository - version: 1.0.0 - digest: sha256:c707ad7ffe303fe6fa0bccb15a1db96ce4f7cfdfd9be8729a2b72346db92c4b4 - tier: signed-attestation - status: passed - evidenceDigest: sha256:d1a00328e7e6c4d484c3c49432ed38c434bc2cca62b9a95e487136ed99247823 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.package-artifact - version: 1.0.0 - digest: sha256:b0ffa8246394d4f1393f6ab9a71309952b8e1aa8afebf51559fac0d2e93fe815 - tier: signed-attestation - status: passed - evidenceDigest: sha256:c4bcb315293541112cfe410d9ab6f16f6499de41b1489a985b97db24dee93e81 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-build - version: 1.0.0 - digest: sha256:dceccbcd2117986300ed526e932910f77de2a1dcf03d818452ab69f1b2f56f53 - tier: signed-attestation - status: passed - evidenceDigest: sha256:25dda15e32000885959238c0a9791aec41604b113d31c782817c6fff1c50d78c - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.site-deployment - version: 1.0.0 - digest: sha256:e6ebee085a5c1779d3fe118bbda8c0857c5017f34dea94b4a4a83794bce7a264 - tier: signed-attestation - status: passed - evidenceDigest: sha256:0eec5baa0640266be40321622d6c35433190de00d0b5a8d9a4b9911ed4c35105 - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.syndication - version: 1.0.0 - digest: sha256:55f238491990a9052e8792ae69ac0c3146d2c86dc2782b6b0c65ec28b322a50e - tier: signed-attestation - status: passed - evidenceDigest: sha256:f5a4a00f7a380c662c2efc6cfa63f49f24d3829ccebdf4a3e8e184195f5967dc - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - - schemaVersion: treeseed.capability-conformance/v1 - providerId: runtime-provider - capability: - id: treeseed.publishing.release-notes - version: 1.0.0 - digest: sha256:0ddc90bc3d50445862c84988838bd9884b3c90dcaa6ce81a9c9d97cef76a0ad1 - tier: signed-attestation - status: passed - evidenceDigest: sha256:cd59391ac535a1006fc25a2c1d71d6da5e016ab399f314baf2f691f376d2d3ed - suite: null - issuedAt: 2026-08-30T00:00:00.000Z - expiresAt: null - signature: - keyId: runtime-provider - algorithm: Ed25519 - value: materialize-at-runtime - limits: {} - commercial: - currency: null - estimatedCost: null - region: null - trust: - - provider-signed - offerDigest: sha256:d861fd9a9ceaa3c6705a8c14f8e7cef474908bb743fe67bd2471e343ce4b7355 - sandboxProfileId: unit -connections: [] -metadata: - custody: local-only - sharedBattery: true -ontology: - generation: 3 - digest: sha256:02d5feed239ed24448a43a6ec3b8385bb9186d53ac3893cc7db7f98e4d598d38 diff --git a/treeseed.site.yaml b/treeseed.site.yaml index 3751753f..32be4f7e 100644 --- a/treeseed.site.yaml +++ b/treeseed.site.yaml @@ -1,22 +1,12 @@ +schemaVersion: treeseed.platform/v1 name: TreeSeed Platform slug: treeseed-platform -siteUrl: https://treeseed.dev/platform -contactEmail: hello@treeseed.email -authority: { kind: customer-platform } -market: { profile: treeseed } -controlPlane: { mode: managed } +authority: { kind: integration-workspace } development: local: - marketConnectivity: disabled inventory: { source: seed, path: seeds/treeseed.yaml } -hub: { mode: customer_hosted } -runtime: { mode: none, registration: none } -processing: { mode: local, providerRef: codex-sub } -surfaces: { web: { enabled: false }, admin: { enabled: false }, api: { enabled: true } } -services: - api: { enabled: true, provider: local } - treeseedDatabase: { enabled: true, provider: local } - operationsRunner: { enabled: true, provider: local } - treedx: { enabled: true, provider: local } - agentProvider: { enabled: true, provider: local } -publicTreeDxFederation: {} +profiles: { path: profiles } +integrations: { development: config/integrations/development.yaml, stablePromotion: config/promotions/stable.yaml } +skill: { lock: config/skills/treeseed.lock.yaml } +runtime: { mode: none, identity: installation-input } +production: { mutation: blocked, topology: config/topologies/production.yaml } From 8d6fd19a8f9675d94da876b82c6aebbb0b5186d6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 11:17:48 -0400 Subject: [PATCH 124/501] config: restore deployable integration release custody --- .github/workflows/verify.yml | 4 +-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 33 ++++++++++++++++++++ config/integrations/development.yaml | 8 ++--- config/integrations/stable.release.json | 18 +++++++++++ 6 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 config/integrations/development.release.json create mode 100644 config/integrations/stable.release.json diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 4e9766e4..f6e88f64 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.40 - with: { version: 0.13.0-rc.40 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.41 + with: { version: 0.13.0-rc.41 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 652b46c6..adfbdace 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index d9b6a15e..c1235699 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json new file mode 100644 index 00000000..8941095c --- /dev/null +++ b/config/integrations/development.release.json @@ -0,0 +1,33 @@ +{ + "schemaVersion": "treeseed.integration-release/v1", + "release": "0.1.0~rc179", + "generation": 141, + "track": "development", + "compatibilityId": "treeseed-linux-amd64-v1", + "platform": { "repository": "treeseed-ai/platform", "commit": "025830527c97acc090d957aed8d4c6ab9a98e9c3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", "tag": "0.1.0-rc.179" }, + "hostPayloads": [ + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, + { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.41", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.41.tgz", "sha256": "49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, + { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, + { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + ], + "components": [ + { "componentId": "api", "release": "0.8.0~rc60-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } }] }, + { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, + { "componentId": "agent", "release": "0.13.0~rc36-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, + { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, + { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } + ], + "createdAt": "2026-08-31T15:12:00.000Z" +} diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index d143b53e..d5cfcc99 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-141 +release: development-142 components: - { id: deployment, version: 0.1.0-rc.179, commit: 7e8e58a6e499aef2a35c9dd036db36694fcb48a4, digest: 'sha256:553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7', artifact: 'https://github.com/treeseed-ai/deployment/releases/tag/0.1.0-rc.179' } - - { id: sdk, version: 0.13.0-rc.63, commit: f3e615c88224069d15b44b9171da20539ba173e3, digest: 'sha256:3e756477fa988b5e82f912e2facd14c9183a919e751ffb0b229ca1af3a126b78', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.63' } - - { id: cli, version: 0.13.0-rc.40, commit: 7c12c3320c44239f89105d53d75725186e08abec, digest: 'sha256:31cdad9c065591d85aae13c71dcde9a3d7081f950f7931b5cfb07ea2ece008ff', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.40' } + - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } + - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' +digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' diff --git a/config/integrations/stable.release.json b/config/integrations/stable.release.json new file mode 100644 index 00000000..6c182f24 --- /dev/null +++ b/config/integrations/stable.release.json @@ -0,0 +1,18 @@ +{ + "schemaVersion": "treeseed.integration-release/v1", + "release": "0.1.0", + "generation": 36, + "track": "stable", + "compatibilityId": "treeseed-linux-amd64-v1", + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, + "hostPayloads": [ + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, + { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, + { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + ], + "components": [], + "createdAt": "2026-08-28T06:02:00.000Z" +} From fe182b1f49824dae8eb938a2abc32c6933f3735e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 11:18:28 -0400 Subject: [PATCH 125/501] config: restore deployable integration release custody (#287) --- .github/workflows/verify.yml | 4 +-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 33 ++++++++++++++++++++ config/integrations/development.yaml | 8 ++--- config/integrations/stable.release.json | 18 +++++++++++ 6 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 config/integrations/development.release.json create mode 100644 config/integrations/stable.release.json diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 4e9766e4..f6e88f64 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.40 - with: { version: 0.13.0-rc.40 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.41 + with: { version: 0.13.0-rc.41 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 652b46c6..adfbdace 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index d9b6a15e..c1235699 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' } +integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json new file mode 100644 index 00000000..8941095c --- /dev/null +++ b/config/integrations/development.release.json @@ -0,0 +1,33 @@ +{ + "schemaVersion": "treeseed.integration-release/v1", + "release": "0.1.0~rc179", + "generation": 141, + "track": "development", + "compatibilityId": "treeseed-linux-amd64-v1", + "platform": { "repository": "treeseed-ai/platform", "commit": "025830527c97acc090d957aed8d4c6ab9a98e9c3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", "tag": "0.1.0-rc.179" }, + "hostPayloads": [ + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, + { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.41", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.41.tgz", "sha256": "49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, + { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, + { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + ], + "components": [ + { "componentId": "api", "release": "0.8.0~rc60-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } }] }, + { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, + { "componentId": "agent", "release": "0.13.0~rc36-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, + { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, + { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, + { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, + { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } + ], + "createdAt": "2026-08-31T15:12:00.000Z" +} diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index d143b53e..d5cfcc99 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-141 +release: development-142 components: - { id: deployment, version: 0.1.0-rc.179, commit: 7e8e58a6e499aef2a35c9dd036db36694fcb48a4, digest: 'sha256:553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7', artifact: 'https://github.com/treeseed-ai/deployment/releases/tag/0.1.0-rc.179' } - - { id: sdk, version: 0.13.0-rc.63, commit: f3e615c88224069d15b44b9171da20539ba173e3, digest: 'sha256:3e756477fa988b5e82f912e2facd14c9183a919e751ffb0b229ca1af3a126b78', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.63' } - - { id: cli, version: 0.13.0-rc.40, commit: 7c12c3320c44239f89105d53d75725186e08abec, digest: 'sha256:31cdad9c065591d85aae13c71dcde9a3d7081f950f7931b5cfb07ea2ece008ff', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.40' } + - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } + - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:8fee6ef6fbbf9ab3139865b52e57ae27a38a24720b4a78db0d515b19b9c21b91' +digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' diff --git a/config/integrations/stable.release.json b/config/integrations/stable.release.json new file mode 100644 index 00000000..6c182f24 --- /dev/null +++ b/config/integrations/stable.release.json @@ -0,0 +1,18 @@ +{ + "schemaVersion": "treeseed.integration-release/v1", + "release": "0.1.0", + "generation": 36, + "track": "stable", + "compatibilityId": "treeseed-linux-amd64-v1", + "platform": { "repository": "treeseed-ai/platform", "commit": "43691da87ad5c145b3511311f4f28489564bf23a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5936b657219e6dbd2cedf8d1898203a4035e2717", "tag": "0.1.0-rc.113" }, + "hostPayloads": [ + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.34", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.34.tgz", "sha256": "0413cbeab3314ac7f90c5e6420fec2f3790f38ffa1e41b86dd571a364ae38a79" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.16.tgz", "sha256": "3b26bdeca38ef33fa94c4487f65eea76c454c4d0c82829afae8a8f707e8034cb" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.9", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.9.tgz", "sha256": "892f51d2626d275e966e9271492e3fc6edb62e14eed8020a002b4016a9b262e7" } }, + { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, + { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + ], + "components": [], + "createdAt": "2026-08-28T06:02:00.000Z" +} From c787aba741ea8dfe376b4d11cc4c7c6ea29de35a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 11:28:56 -0400 Subject: [PATCH 126/501] config: select deployment rc180 composition --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index adfbdace..dcb3bb2c 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } +integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index c1235699..91bd6d5f 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' } +integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8941095c..f974448d 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc179", - "generation": 141, + "release": "0.1.0~rc180", + "generation": 142, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "025830527c97acc090d957aed8d4c6ab9a98e9c3" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "7e8e58a6e499aef2a35c9dd036db36694fcb48a4", "tag": "0.1.0-rc.179" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "fe182b1f49824dae8eb938a2abc32c6933f3735e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "956af846712d1ac79eb87514ef3400cd9c8a0948", "tag": "0.1.0-rc.180" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T15:12:00.000Z" + "createdAt": "2026-08-31T15:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index d5cfcc99..373f31c3 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-142 +release: development-143 components: - - { id: deployment, version: 0.1.0-rc.179, commit: 7e8e58a6e499aef2a35c9dd036db36694fcb48a4, digest: 'sha256:553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7', artifact: 'https://github.com/treeseed-ai/deployment/releases/tag/0.1.0-rc.179' } + - { id: deployment, version: 0.1.0-rc.180, commit: 956af846712d1ac79eb87514ef3400cd9c8a0948, digest: 'sha256:d17788145d1e53f805db66102ada43f5a0e98c119cb016dd003d952844b98c8f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.180/exact-head.json' } - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:1adc7d62d2d999ce4700483a7dc4b1cdb6096e4638de8652687a8d5924961fcc' +digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' From 6a2de6e639a8442803ecaa12a88cca0547f57515 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 12:14:02 -0400 Subject: [PATCH 127/501] Select Deployment 0.1.0-rc.182 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index dcb3bb2c..ce0f60cd 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } +integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 91bd6d5f..2fcd94cf 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } +integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f974448d..bef163df 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc180", - "generation": 142, + "release": "0.1.0~rc182", + "generation": 143, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "fe182b1f49824dae8eb938a2abc32c6933f3735e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "956af846712d1ac79eb87514ef3400cd9c8a0948", "tag": "0.1.0-rc.180" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c237cb0c6803d3fc00a4031458149447225dfca2" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "bcedc0a2602e1859f8b44424cd748e8b01de396a", "tag": "0.1.0-rc.182" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T15:30:00.000Z" + "createdAt": "2026-08-31T16:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 373f31c3..f6f77eae 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-143 +release: development-144 components: - - { id: deployment, version: 0.1.0-rc.180, commit: 956af846712d1ac79eb87514ef3400cd9c8a0948, digest: 'sha256:d17788145d1e53f805db66102ada43f5a0e98c119cb016dd003d952844b98c8f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.180/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.182, commit: bcedc0a2602e1859f8b44424cd748e8b01de396a, digest: 'sha256:d9547da2f68737d0cf6bcb0d338c919c4d64d6a1e29fed1e2af294266d0515af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.182/exact-head.json' } - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' +digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' From b8fbd43c035b2381328606282efc9806ad6b5694 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 12:14:51 -0400 Subject: [PATCH 128/501] Select Deployment 0.1.0-rc.182 (#291) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index dcb3bb2c..ce0f60cd 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } +integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 91bd6d5f..2fcd94cf 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' } +integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f974448d..bef163df 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc180", - "generation": 142, + "release": "0.1.0~rc182", + "generation": 143, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "fe182b1f49824dae8eb938a2abc32c6933f3735e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "956af846712d1ac79eb87514ef3400cd9c8a0948", "tag": "0.1.0-rc.180" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "c237cb0c6803d3fc00a4031458149447225dfca2" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "bcedc0a2602e1859f8b44424cd748e8b01de396a", "tag": "0.1.0-rc.182" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, @@ -29,5 +29,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T15:30:00.000Z" + "createdAt": "2026-08-31T16:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 373f31c3..f6f77eae 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-143 +release: development-144 components: - - { id: deployment, version: 0.1.0-rc.180, commit: 956af846712d1ac79eb87514ef3400cd9c8a0948, digest: 'sha256:d17788145d1e53f805db66102ada43f5a0e98c119cb016dd003d952844b98c8f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.180/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.182, commit: bcedc0a2602e1859f8b44424cd748e8b01de396a, digest: 'sha256:d9547da2f68737d0cf6bcb0d338c919c4d64d6a1e29fed1e2af294266d0515af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.182/exact-head.json' } - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:42b9cd740e9e41ad2369ccdde7ab1ef456aacb0bb35ceb55a84f06ee5428a815' +digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' From 76421de065bc58c3b7945e49f616445dce591f42 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 12:36:06 -0400 Subject: [PATCH 129/501] Publish host initialization profile descriptors --- .github/workflows/verify.yml | 4 ++-- config/initialization/capacity-provider.json | 12 ++++++++++++ config/initialization/control-plane.json | 9 +++++++++ config/initialization/core.json | 9 +++++++++ config/initialization/treeai.json | 9 +++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 config/initialization/capacity-provider.json create mode 100644 config/initialization/control-plane.json create mode 100644 config/initialization/core.json create mode 100644 config/initialization/treeai.json diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index f6e88f64..cfa522fb 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.41 - with: { version: 0.13.0-rc.41 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.42 + with: { version: 0.13.0-rc.42 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/initialization/capacity-provider.json b/config/initialization/capacity-provider.json new file mode 100644 index 00000000..ca43cdfe --- /dev/null +++ b/config/initialization/capacity-provider.json @@ -0,0 +1,12 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "capacity-provider", + "role": "capacity-provider", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["agent"], + "security": { "requirement": "required" }, + "inputs": [ + { "name": "controlPlaneUrl", "required": true, "sensitive": false, "description": "Control-plane API HTTPS URL" }, + { "name": "teamRegistrationCode", "required": true, "sensitive": true, "description": "Team capacity-provider registration code" } + ] +} diff --git a/config/initialization/control-plane.json b/config/initialization/control-plane.json new file mode 100644 index 00000000..6b8972a3 --- /dev/null +++ b/config/initialization/control-plane.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "control-plane", + "role": "control-plane", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "treedx", "lab"], + "security": { "requirement": "optional" }, + "inputs": [] +} diff --git a/config/initialization/core.json b/config/initialization/core.json new file mode 100644 index 00000000..47d0ea54 --- /dev/null +++ b/config/initialization/core.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "core", + "role": "integrated", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "agent", "treedx", "lab"], + "security": { "requirement": "required" }, + "inputs": [] +} diff --git a/config/initialization/treeai.json b/config/initialization/treeai.json new file mode 100644 index 00000000..57553d0d --- /dev/null +++ b/config/initialization/treeai.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "treeai", + "role": "integrated", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "agent", "treedx", "lab", "ai-inference", "ai-training", "ai-lab"], + "security": { "requirement": "required" }, + "inputs": [] +} From 9a355eb112498353827d19c030b3bd67bde46111 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 12:36:50 -0400 Subject: [PATCH 130/501] Publish host initialization profile descriptors (#293) --- .github/workflows/verify.yml | 4 ++-- config/initialization/capacity-provider.json | 12 ++++++++++++ config/initialization/control-plane.json | 9 +++++++++ config/initialization/core.json | 9 +++++++++ config/initialization/treeai.json | 9 +++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 config/initialization/capacity-provider.json create mode 100644 config/initialization/control-plane.json create mode 100644 config/initialization/core.json create mode 100644 config/initialization/treeai.json diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index f6e88f64..cfa522fb 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.41 - with: { version: 0.13.0-rc.41 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.42 + with: { version: 0.13.0-rc.42 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/initialization/capacity-provider.json b/config/initialization/capacity-provider.json new file mode 100644 index 00000000..ca43cdfe --- /dev/null +++ b/config/initialization/capacity-provider.json @@ -0,0 +1,12 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "capacity-provider", + "role": "capacity-provider", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["agent"], + "security": { "requirement": "required" }, + "inputs": [ + { "name": "controlPlaneUrl", "required": true, "sensitive": false, "description": "Control-plane API HTTPS URL" }, + { "name": "teamRegistrationCode", "required": true, "sensitive": true, "description": "Team capacity-provider registration code" } + ] +} diff --git a/config/initialization/control-plane.json b/config/initialization/control-plane.json new file mode 100644 index 00000000..6b8972a3 --- /dev/null +++ b/config/initialization/control-plane.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "control-plane", + "role": "control-plane", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "treedx", "lab"], + "security": { "requirement": "optional" }, + "inputs": [] +} diff --git a/config/initialization/core.json b/config/initialization/core.json new file mode 100644 index 00000000..47d0ea54 --- /dev/null +++ b/config/initialization/core.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "core", + "role": "integrated", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "agent", "treedx", "lab"], + "security": { "requirement": "required" }, + "inputs": [] +} diff --git a/config/initialization/treeai.json b/config/initialization/treeai.json new file mode 100644 index 00000000..57553d0d --- /dev/null +++ b/config/initialization/treeai.json @@ -0,0 +1,9 @@ +{ + "schemaVersion": "treeseed.host-initialization-profile/v1", + "id": "treeai", + "role": "integrated", + "runtime": { "management": "managed", "environment": "track-default" }, + "components": ["api", "admin", "agent", "treedx", "lab", "ai-inference", "ai-training", "ai-lab"], + "security": { "requirement": "required" }, + "inputs": [] +} From 489e69b50d8c0a9b97ec4e1e7d8575506d75f1e8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 13:04:21 -0400 Subject: [PATCH 131/501] Bind host initialization profile artifacts --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 16 +++++++++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ce0f60cd..929ef9c1 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } +integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2fcd94cf..ef85c139 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } +integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index bef163df..c3cb5974 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,24 +1,30 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc182", - "generation": 143, + "generation": 144, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c237cb0c6803d3fc00a4031458149447225dfca2" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "9a355eb112498353827d19c030b3bd67bde46111" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "bcedc0a2602e1859f8b44424cd748e8b01de396a", "tag": "0.1.0-rc.182" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.41", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.41.tgz", "sha256": "49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.42.tgz", "sha256": "b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], + "hostProfiles": [ + { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, + { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, + { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, + { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } + ], "components": [ { "componentId": "api", "release": "0.8.0~rc60-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, @@ -29,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T16:30:00.000Z" + "createdAt": "2026-08-31T17:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index f6f77eae..609ab637 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-144 +release: development-145 components: - { id: deployment, version: 0.1.0-rc.182, commit: bcedc0a2602e1859f8b44424cd748e8b01de396a, digest: 'sha256:d9547da2f68737d0cf6bcb0d338c919c4d64d6a1e29fed1e2af294266d0515af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.182/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } - - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } + - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } + - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' +digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' From 5fa94d4275ab53038c24aba77e97c4654e30625a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 13:05:11 -0400 Subject: [PATCH 132/501] Bind host initialization profile artifacts (#295) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 16 +++++++++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ce0f60cd..929ef9c1 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } +integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2fcd94cf..ef85c139 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' } +integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index bef163df..c3cb5974 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,24 +1,30 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc182", - "generation": 143, + "generation": 144, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "c237cb0c6803d3fc00a4031458149447225dfca2" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "9a355eb112498353827d19c030b3bd67bde46111" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "bcedc0a2602e1859f8b44424cd748e8b01de396a", "tag": "0.1.0-rc.182" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.64", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.64.tgz", "sha256": "c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.41", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.41.tgz", "sha256": "49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.42.tgz", "sha256": "b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], + "hostProfiles": [ + { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, + { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, + { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, + { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } + ], "components": [ { "componentId": "api", "release": "0.8.0~rc60-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, @@ -29,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T16:30:00.000Z" + "createdAt": "2026-08-31T17:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index f6f77eae..609ab637 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-144 +release: development-145 components: - { id: deployment, version: 0.1.0-rc.182, commit: bcedc0a2602e1859f8b44424cd748e8b01de396a, digest: 'sha256:d9547da2f68737d0cf6bcb0d338c919c4d64d6a1e29fed1e2af294266d0515af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.182/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.64, commit: dfc36193713d4c9ebeb68cd2d2bd23feca46f7e5, digest: 'sha256:c2c42bb3fd09a6bebb185ea7a586dabc3fef97080a276b42d0f6a85520c456f0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.64' } - - { id: cli, version: 0.13.0-rc.41, commit: 2fa5444bcaae23458df6789e02177c96b3d88348, digest: 'sha256:49f8d4931fea89ad210044fa5c75153bc708dd51673da82ce0a3c5c0fc7f1b7d', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.41' } + - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } + - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:80d8df022e8d6282f167686365f9cefc37c54d93cccbec94c3681d55b79a022d' +digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' From 1ee7b6ecb5f5e62d00faa987714896f12b8b195b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 13:30:38 -0400 Subject: [PATCH 133/501] chore(integration): select Deployment rc183 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 929ef9c1..db926182 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } +integration: { id: development, digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index ef85c139..2d0261b0 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' } +integration: { id: development, digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c3cb5974..d352e1eb 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc182", - "generation": 144, + "release": "0.1.0~rc183", + "generation": 145, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "9a355eb112498353827d19c030b3bd67bde46111" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "bcedc0a2602e1859f8b44424cd748e8b01de396a", "tag": "0.1.0-rc.182" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "5fa94d4275ab53038c24aba77e97c4654e30625a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd", "tag": "0.1.0-rc.183" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T17:30:00.000Z" + "createdAt": "2026-08-31T17:31:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 609ab637..0231da22 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-145 +release: development-146 components: - - { id: deployment, version: 0.1.0-rc.182, commit: bcedc0a2602e1859f8b44424cd748e8b01de396a, digest: 'sha256:d9547da2f68737d0cf6bcb0d338c919c4d64d6a1e29fed1e2af294266d0515af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.182/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.183, commit: fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd, digest: 'sha256:9f3fab21cccadb945cac6ebfbeb24b67d644b22126552f28fc153500f20dd0a8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.183/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:26bdd4b4107f3fe0649f6aea790a197cbf99f3b020f4f4e965613338bfefc487' +digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' From 8887a8a0615eb6c873ea5f4af6419de4a72d5e55 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 14:17:48 -0400 Subject: [PATCH 134/501] config: compose reusable provider registration releases --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index db926182..f26b0b03 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' } +integration: { id: development, digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2d0261b0..ddcda743 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' } +integration: { id: development, digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index d352e1eb..32fbe618 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc183", - "generation": 145, + "generation": 146, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "5fa94d4275ab53038c24aba77e97c4654e30625a" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd", "tag": "0.1.0-rc.183" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.60", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/treeseed-api-0.8.0-rc.60.tgz", "sha256": "89bb45f6819d3ab10335318c7a49cc1be6966a904bb5cedef01f896f055b7981" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc60-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/component-release.json", "sha256": "78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.60/compose.yml", "sha256": "13d577c3491646e9c9c9e85141179743d0d23ca9fe5bb3d039e69840f781ad32" } }] }, + { "componentId": "api", "release": "0.8.0~rc61-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/component-release.json", "sha256": "8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/compose.yml", "sha256": "9fcb92dd641a3eb3059164300dcc2e6e5f8cff29bd8f4afcbdd8cf3c57ff4aab" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc36-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/component-release.json", "sha256": "5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.36/compose.yml", "sha256": "2a3503208e176f82130eb2e972af1a8e6b0066c6029df63d29ca9a4a09427cdc" } }] }, + { "componentId": "agent", "release": "0.13.0~rc37-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.37/component-release.json", "sha256": "33a06f18f724c653d24da56d1831ea120a061a5d9902f9248162bea4cabe5bad" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.37/compose.yml", "sha256": "048f4db89e40fb719bdcebab588344a499a8bacf9efd7ffeec44661b7e3ad34d" } }] }, { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T17:31:00.000Z" + "createdAt": "2026-08-31T18:14:19.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 0231da22..8fc05271 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-146 +release: development-147 components: - { id: deployment, version: 0.1.0-rc.183, commit: fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd, digest: 'sha256:9f3fab21cccadb945cac6ebfbeb24b67d644b22126552f28fc153500f20dd0a8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.183/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - - { id: api, version: 0.8.0-rc.60, commit: d275d8f4079db6ee965a78f3617e17022c26f53c, digest: 'sha256:78353fa375658c8a3617db891b8fc6eb234bff1132fd02aeefbef0ecbcd0ccbf', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.60' } + - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - - { id: agent, version: 0.13.0-rc.36, commit: 270d644491368dbc69ebcdc8db84cd4bd2f21864, digest: 'sha256:5d879a75c3cb197dd8fcf437885bf1a6f0fc172e0b7b256a5d7d0afe993b7e1b', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.36' } + - { id: agent, version: 0.13.0-rc.37, commit: c79d44dc74993d88625ebe8ede54aafaa303024f, digest: 'sha256:33a06f18f724c653d24da56d1831ea120a061a5d9902f9248162bea4cabe5bad', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.37' } - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:ce389d0a76506996982e5b1af68d105fc6e51028da932b6ace81dc9fde3c3769' +digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' From f06b11b68672c7b1032cd59a24a003fc82266fc3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 14:36:43 -0400 Subject: [PATCH 135/501] config: compose deployment 0.1.0-rc.184 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f26b0b03..79e3fdc9 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' } +integration: { id: development, digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index ddcda743..bad2045c 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' } +integration: { id: development, digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 32fbe618..1179775f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc183", - "generation": 146, + "release": "0.1.0~rc184", + "generation": 147, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "5fa94d4275ab53038c24aba77e97c4654e30625a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd", "tag": "0.1.0-rc.183" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "11764f9cefcde5aa20211246a6f67d292d47ebd1" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1ba87702ccc8327a68e2cc5deb96bdbbb5873583", "tag": "0.1.0-rc.184" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T18:14:19.000Z" + "createdAt": "2026-08-31T18:35:23.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 8fc05271..440f7b8c 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-147 +release: development-148 components: - - { id: deployment, version: 0.1.0-rc.183, commit: fd87cfe4e1edb16f8bcb0579dddcb5bd2bbf09cd, digest: 'sha256:9f3fab21cccadb945cac6ebfbeb24b67d644b22126552f28fc153500f20dd0a8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.183/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.184, commit: 1ba87702ccc8327a68e2cc5deb96bdbbb5873583, digest: 'sha256:d3a177f044e39ad807299a54daa48227952907550349f8b5f4930889cbe46465', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.184/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:507cdc7a9b2b145fa7f2d46aaaa1a88eef30f28f44a647804ede264a752ede67' +digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' From f70d5a95cbeaefdad2a54a72a59eca27a275e68f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 16:49:38 -0400 Subject: [PATCH 136/501] config: compose Agent rc38 and Deployment rc187 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 79e3fdc9..75a4a29f 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' } +integration: { id: development, digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bad2045c..c4cfe7e6 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' } +integration: { id: development, digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1179775f..edab311d 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc184", - "generation": 147, + "release": "0.1.0~rc187", + "generation": 148, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "11764f9cefcde5aa20211246a6f67d292d47ebd1" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1ba87702ccc8327a68e2cc5deb96bdbbb5873583", "tag": "0.1.0-rc.184" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6b2527ee801345e2edfdb4367b000a20cc92b1a6" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "6ad1e0c006d129db4a3b6e23b2d04d42617a46d8", "tag": "0.1.0-rc.187" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -28,12 +28,12 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc61-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/component-release.json", "sha256": "8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/compose.yml", "sha256": "9fcb92dd641a3eb3059164300dcc2e6e5f8cff29bd8f4afcbdd8cf3c57ff4aab" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc37-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.37/component-release.json", "sha256": "33a06f18f724c653d24da56d1831ea120a061a5d9902f9248162bea4cabe5bad" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.37/compose.yml", "sha256": "048f4db89e40fb719bdcebab588344a499a8bacf9efd7ffeec44661b7e3ad34d" } }] }, + { "componentId": "agent", "release": "0.13.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/component-release.json", "sha256": "320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/compose.yml", "sha256": "549a0e2b1efc1cb9496b8e7fe2eef0186d06fde8ec91d25ecace30494256a98a" } }] }, { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T18:35:23.000Z" + "createdAt": "2026-08-31T20:46:47.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 440f7b8c..eeee51ca 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-148 +release: development-149 components: - - { id: deployment, version: 0.1.0-rc.184, commit: 1ba87702ccc8327a68e2cc5deb96bdbbb5873583, digest: 'sha256:d3a177f044e39ad807299a54daa48227952907550349f8b5f4930889cbe46465', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.184/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.187, commit: 6ad1e0c006d129db4a3b6e23b2d04d42617a46d8, digest: 'sha256:8722b2c43a2e27c17e72a02d80e1b640f82a10f02a0f06b3b3e626c821f71065', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.187/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - - { id: agent, version: 0.13.0-rc.37, commit: c79d44dc74993d88625ebe8ede54aafaa303024f, digest: 'sha256:33a06f18f724c653d24da56d1831ea120a061a5d9902f9248162bea4cabe5bad', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.37' } + - { id: agent, version: 0.13.0-rc.38, commit: d0b0cbb9438f0808e3a678ed2ffa81cd36ca13d8, digest: 'sha256:320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.38' } - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:521e909e97f351894998b83bd499933ae3d55fb2fac225b66fe61e976b3d2eab' +digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' From 19c7b141fbe7e80afcb1b7780120258fed6a1db4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 17:01:13 -0400 Subject: [PATCH 137/501] chore: compose development generation 149 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 75a4a29f..b4a79190 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' } +integration: { id: development, digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index c4cfe7e6..3fc51947 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' } +integration: { id: development, digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index edab311d..548eb7a5 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc187", - "generation": 148, + "release": "0.1.0~rc188", + "generation": 149, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6b2527ee801345e2edfdb4367b000a20cc92b1a6" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "6ad1e0c006d129db4a3b6e23b2d04d42617a46d8", "tag": "0.1.0-rc.187" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "06d5fa1e53c24cad9f3701817c31277efb2f9cbb" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "45c09d9f7051217680b0b9317634db91cb104a58", "tag": "0.1.0-rc.188" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T20:46:47.000Z" + "createdAt": "2026-08-31T20:59:51.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index eeee51ca..09873278 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-149 +release: development-150 components: - - { id: deployment, version: 0.1.0-rc.187, commit: 6ad1e0c006d129db4a3b6e23b2d04d42617a46d8, digest: 'sha256:8722b2c43a2e27c17e72a02d80e1b640f82a10f02a0f06b3b3e626c821f71065', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.187/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.188, commit: 45c09d9f7051217680b0b9317634db91cb104a58, digest: 'sha256:9728edf32dbfc0a62a344c6c0e26d5d94db728a8afc8441fda32c3fb73488ded', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.188/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:22caded42c3254c5657e73449dba6f656508a00323b6088f1cab0fde36058703' +digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' From a619ec880880afa736a0af541e7ede77465b9083 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 17:32:56 -0400 Subject: [PATCH 138/501] chore: compose development generation 150 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index b4a79190..25289bf9 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' } +integration: { id: development, digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 3fc51947..56f396a6 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' } +integration: { id: development, digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 548eb7a5..993e1555 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc188", - "generation": 149, + "release": "0.1.0~rc189", + "generation": 150, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "06d5fa1e53c24cad9f3701817c31277efb2f9cbb" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "45c09d9f7051217680b0b9317634db91cb104a58", "tag": "0.1.0-rc.188" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "4090029fa4cde5a64602460c37b211688c33d56f" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "52d6d9b0aa912d05d7e41d90021f990b3851b2d2", "tag": "0.1.0-rc.189" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T20:59:51.000Z" + "createdAt": "2026-08-31T21:31:53.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 09873278..a78350e0 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-150 +release: development-151 components: - - { id: deployment, version: 0.1.0-rc.188, commit: 45c09d9f7051217680b0b9317634db91cb104a58, digest: 'sha256:9728edf32dbfc0a62a344c6c0e26d5d94db728a8afc8441fda32c3fb73488ded', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.188/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.189, commit: 52d6d9b0aa912d05d7e41d90021f990b3851b2d2, digest: 'sha256:36cad469d6b4fd738b33f25168712f7d8701075836edba91f562db0d53acaf08', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.189/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:d04e776998e2755a24f3cdd3f2c72619421a6cc86effe366b7b681e4bcf50d0f' +digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' From f7c0ac2166384c771ad5f46b68ffbef9b8eaee87 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 18:02:42 -0400 Subject: [PATCH 139/501] chore: compose development generation 151 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 25289bf9..823c8a8d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' } +integration: { id: development, digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 56f396a6..543e1e44 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' } +integration: { id: development, digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 993e1555..7987eebc 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc189", - "generation": 150, + "release": "0.1.0~rc190", + "generation": 151, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "4090029fa4cde5a64602460c37b211688c33d56f" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "52d6d9b0aa912d05d7e41d90021f990b3851b2d2", "tag": "0.1.0-rc.189" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "0525f3bedd49240b340e0d44fedcba2f5e120566" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "8007657b7fb77fb648669ae05b3e8da45dd0418c", "tag": "0.1.0-rc.190" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T21:31:53.000Z" + "createdAt": "2026-08-31T22:00:46.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index a78350e0..1deb7585 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-151 +release: development-152 components: - - { id: deployment, version: 0.1.0-rc.189, commit: 52d6d9b0aa912d05d7e41d90021f990b3851b2d2, digest: 'sha256:36cad469d6b4fd738b33f25168712f7d8701075836edba91f562db0d53acaf08', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.189/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.190, commit: 8007657b7fb77fb648669ae05b3e8da45dd0418c, digest: 'sha256:5291b8a19d91aed11dce44186e1bf1751c708629467a8bf7331564199cc5e680', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.190/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4a7f0b89ba203a8e14a2c1c1fc26e5dc595be7f887c19c7ef082e95cdec4a9ac' +digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' From 2b3899244de42d1aa46abe4ef99858367eb0e617 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 18:09:16 -0400 Subject: [PATCH 140/501] fix: bind compact rc190 exact-head evidence --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 823c8a8d..537b580e 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' } +integration: { id: development, digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 543e1e44..7cf96297 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' } +integration: { id: development, digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 1deb7585..2b000eaa 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 release: development-152 components: - - { id: deployment, version: 0.1.0-rc.190, commit: 8007657b7fb77fb648669ae05b3e8da45dd0418c, digest: 'sha256:5291b8a19d91aed11dce44186e1bf1751c708629467a8bf7331564199cc5e680', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.190/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.190, commit: 8007657b7fb77fb648669ae05b3e8da45dd0418c, digest: 'sha256:a2196a1025c1e39f01c017f03ae1df0712365829f982a808e542685eac173f3f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.190/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:67d0b51a457bbb20e9ec3e3f94f8abe238fa03327c09969c1dff551040abab07' +digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' From e43c478d3112c1ddc192cbb2acc17b413e7c3eea Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 18:28:08 -0400 Subject: [PATCH 141/501] chore: compose development generation 152 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 537b580e..875bd6bb 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' } +integration: { id: development, digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 7cf96297..37f53212 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' } +integration: { id: development, digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7987eebc..09ca1eed 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc190", - "generation": 151, + "release": "0.1.0~rc191", + "generation": 152, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "0525f3bedd49240b340e0d44fedcba2f5e120566" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "8007657b7fb77fb648669ae05b3e8da45dd0418c", "tag": "0.1.0-rc.190" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "4a5b3af47992fbf41dad712b2ced690a7bbf41cf" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "0b89452f31164e224fc4f6d16efaf20e28afe6c7", "tag": "0.1.0-rc.191" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T22:00:46.000Z" + "createdAt": "2026-08-31T22:26:57.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 2b000eaa..17220865 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-152 +release: development-153 components: - - { id: deployment, version: 0.1.0-rc.190, commit: 8007657b7fb77fb648669ae05b3e8da45dd0418c, digest: 'sha256:a2196a1025c1e39f01c017f03ae1df0712365829f982a808e542685eac173f3f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.190/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.191, commit: 0b89452f31164e224fc4f6d16efaf20e28afe6c7, digest: 'sha256:c6c5a900e4deb301135ac5b144ae3ce1619a2140ce47c6517950ab5ee98ef5c0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.191/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:35e05c17d407383dfbd5e15eaf3f29224933f95c6ac472b1a823f5258a5ce325' +digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' From 03e47cb4fdbb79b3886a2f39f6d0e4d7b1e0b307 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 18:51:27 -0400 Subject: [PATCH 142/501] chore: compose development generation 153 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 875bd6bb..155b52fe 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' } +integration: { id: development, digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 37f53212..bb8e0a41 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' } +integration: { id: development, digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 09ca1eed..e61d5a64 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc191", - "generation": 152, + "release": "0.1.0~rc192", + "generation": 153, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "4a5b3af47992fbf41dad712b2ced690a7bbf41cf" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "0b89452f31164e224fc4f6d16efaf20e28afe6c7", "tag": "0.1.0-rc.191" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "b0d603e9000279baab8efe3db42acf0c878b921d" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "5ea3417a7b966c3812f9661f4d3907cca1316914", "tag": "0.1.0-rc.192" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T22:26:57.000Z" + "createdAt": "2026-08-31T22:50:48.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 17220865..435aa893 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-153 +release: development-154 components: - - { id: deployment, version: 0.1.0-rc.191, commit: 0b89452f31164e224fc4f6d16efaf20e28afe6c7, digest: 'sha256:c6c5a900e4deb301135ac5b144ae3ce1619a2140ce47c6517950ab5ee98ef5c0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.191/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.192, commit: 5ea3417a7b966c3812f9661f4d3907cca1316914, digest: 'sha256:02c741b22d89571b65c251af54df9a7ca67a8ea54367b514c83c3cc2466a5c53', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.192/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:aa59e77fa38aa3c5f09748b2eb750a4953afead405b55016fb78f778973e1cc1' +digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' From 69948c0a0c5e15002358f9a714ac41b0261aa0d7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 20:00:30 -0400 Subject: [PATCH 143/501] Compose Deployment rc193 as generation 154 (#315) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 155b52fe..046cff2d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' } +integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bb8e0a41..8072169c 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' } +integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e61d5a64..f56eb66b 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc192", - "generation": 153, + "release": "0.1.0~rc193", + "generation": 154, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b0d603e9000279baab8efe3db42acf0c878b921d" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "5ea3417a7b966c3812f9661f4d3907cca1316914", "tag": "0.1.0-rc.192" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3b341426f6be40fe9b5c9ba98e0cd7e86ba281d4" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a", "tag": "0.1.0-rc.193" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-08-31T22:50:48.000Z" + "createdAt": "2026-09-01T00:00:07.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 435aa893..429a67a4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-154 +release: development-155 components: - - { id: deployment, version: 0.1.0-rc.192, commit: 5ea3417a7b966c3812f9661f4d3907cca1316914, digest: 'sha256:02c741b22d89571b65c251af54df9a7ca67a8ea54367b514c83c3cc2466a5c53', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.192/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.193, commit: 0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a, digest: 'sha256:0dea22deea3d126752df7629d4df6270372e3d212ce7ff75622b302fdcc81058', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.193/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:404ed6d45470969cad6aa0e65f785f5e653cb4cedcc99340f1bdb7eccc57f7b3' +digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' From c81c07d9a66a8224dddd1a0e5df42945e9d7173a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 20:31:38 -0400 Subject: [PATCH 144/501] Compose Agent rc39 and Deployment rc194 (#317) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 046cff2d..786e4ed5 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } +integration: { id: development, digest: 'sha256:dee956e1a2740e2ff6f3db36c87fdbebac3d65bcd78c149a9917f0bf47e6316b' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 8072169c..cae68bbc 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } +integration: { id: development, digest: 'sha256:dee956e1a2740e2ff6f3db36c87fdbebac3d65bcd78c149a9917f0bf47e6316b' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f56eb66b..e64daf3a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc193", - "generation": 154, + "release": "0.1.0~rc194", + "generation": 155, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3b341426f6be40fe9b5c9ba98e0cd7e86ba281d4" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a", "tag": "0.1.0-rc.193" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d1d445be8521ee7cf2219ebca4255d8f39164fe3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d190a94ded31193a659dfaa74a6e33cc6834aed3", "tag": "0.1.0-rc.194" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, @@ -28,12 +28,12 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc61-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/component-release.json", "sha256": "8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/compose.yml", "sha256": "9fcb92dd641a3eb3059164300dcc2e6e5f8cff29bd8f4afcbdd8cf3c57ff4aab" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/component-release.json", "sha256": "320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/compose.yml", "sha256": "549a0e2b1efc1cb9496b8e7fe2eef0186d06fde8ec91d25ecace30494256a98a" } }] }, + { "componentId": "agent", "release": "0.13.0~rc39-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.39/component-release.json", "sha256": "026972dadf06611cf6f5ffc8d48a7ebd7eee568d04aced5c5492a780f9cf5e1c" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.39/compose.yml", "sha256": "b47ef975e0fa40b9d96341ec5e21799ab009be8f3e4caf9bf9af6e3990350187" } }] }, { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T00:00:07.000Z" + "createdAt": "2026-09-01T00:35:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 429a67a4..50aa2557 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-155 +release: development-156 components: - - { id: deployment, version: 0.1.0-rc.193, commit: 0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a, digest: 'sha256:0dea22deea3d126752df7629d4df6270372e3d212ce7ff75622b302fdcc81058', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.193/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.194, commit: d190a94ded31193a659dfaa74a6e33cc6834aed3, digest: 'sha256:5b564912fe19c4b0107d411b210612a34487173f4c732e4248dc2ba3d388f170', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.194/exact-head.json' } - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - - { id: agent, version: 0.13.0-rc.38, commit: d0b0cbb9438f0808e3a678ed2ffa81cd36ca13d8, digest: 'sha256:320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.38' } + - { id: agent, version: 0.13.0-rc.39, commit: 525b26bd6ba12815c5e97c2a73bc017f3d26d885, digest: 'sha256:026972dadf06611cf6f5ffc8d48a7ebd7eee568d04aced5c5492a780f9cf5e1c', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.39' } - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' +digest: 'sha256:dee956e1a2740e2ff6f3db36c87fdbebac3d65bcd78c149a9917f0bf47e6316b' From 2c9236db0268f7e49e41950c0bb873757a2241ca Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 22:38:16 -0400 Subject: [PATCH 145/501] Compose context release chain as generation 155 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 22 ++++++++++---------- config/integrations/development.yaml | 14 ++++++------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 046cff2d..74de39f0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } +integration: { id: development, digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 8072169c..e620627f 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' } +integration: { id: development, digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f56eb66b..baf54a6a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,21 +1,21 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc193", - "generation": 154, + "release": "0.1.0~rc195", + "generation": 155, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3b341426f6be40fe9b5c9ba98e0cd7e86ba281d4" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a", "tag": "0.1.0-rc.193" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d1d445be8521ee7cf2219ebca4255d8f39164fe3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "562265e8bfb2da36ce8cd24adfd52f46da5667ff", "tag": "0.1.0-rc.195" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.65", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.65.tgz", "sha256": "ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.61", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/treeseed-api-0.8.0-rc.61.tgz", "sha256": "66688cbe6846fcbf32b3bfd135eb6cad3d360828e1544344bd65f8ded4c1acc4" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.42.tgz", "sha256": "b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.12.tgz", "sha256": "65f0aa662133958e79dd1ddf1dac50ca7385b280607a6bf526539c099c031568" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc61-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/component-release.json", "sha256": "8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.61/compose.yml", "sha256": "9fcb92dd641a3eb3059164300dcc2e6e5f8cff29bd8f4afcbdd8cf3c57ff4aab" } }] }, + { "componentId": "api", "release": "0.8.0~rc62-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/component-release.json", "sha256": "94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/compose.yml", "sha256": "07b38162a4c547b745343cae2a46288a8dc43c33df1f281d9d7d6e1f7f6880c7" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc38-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/component-release.json", "sha256": "320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.38/compose.yml", "sha256": "549a0e2b1efc1cb9496b8e7fe2eef0186d06fde8ec91d25ecace30494256a98a" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc12-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/component-release.json", "sha256": "e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.12/compose.yml", "sha256": "13f98d20b9d4550c3d846b34965252f59ec835f73859e5d59980fa9bce58289b" } }] }, + { "componentId": "agent", "release": "0.13.0~rc40-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.40/component-release.json", "sha256": "2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.40/compose.yml", "sha256": "a1a5db6ef956b1bcf264565b9ce90292bd1b4713138fe9757f82e5a09a9161ea" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/component-release.json", "sha256": "3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/compose.yml", "sha256": "cfb123a328f68df71dc4d72f8526ae6cae3e041978ca9675127245a1b276b901" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T00:00:07.000Z" + "createdAt": "2026-09-01T02:15:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 429a67a4..084d22b8 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-155 +release: development-156 components: - - { id: deployment, version: 0.1.0-rc.193, commit: 0f6298f7d1f5759fdea2b7d40f1fc070efe5b41a, digest: 'sha256:0dea22deea3d126752df7629d4df6270372e3d212ce7ff75622b302fdcc81058', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.193/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.65, commit: ba134e7961b1fb337277ce685c46fc862b28141b, digest: 'sha256:ed01689cd55362963fffef18e3f973604922833d5be593c35d76f1602f5724a3', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.65' } + - { id: deployment, version: 0.1.0-rc.195, commit: 562265e8bfb2da36ce8cd24adfd52f46da5667ff, digest: 'sha256:e2dd3b93a32463e8364d7b047f29b2e4359b4bbf763fdb379ccfd19793dd9d65', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.195/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } - - { id: api, version: 0.8.0-rc.61, commit: 1bdbac0437e73c77564b2d2257e83caddfd66aa8, digest: 'sha256:8e630758ea8995f164adddca3f23c10b97b8760984bf1c8d9642ef239219fc25', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.61' } + - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - - { id: agent, version: 0.13.0-rc.38, commit: d0b0cbb9438f0808e3a678ed2ffa81cd36ca13d8, digest: 'sha256:320692c96c80e667ac1cf3c942328500f451b61b4054eeda60b31e50f9e804d6', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.38' } - - { id: treedx, version: 0.3.0-rc.12, commit: 9b2c3cb9101b5fe81befe4a6cf98fa0262ed0bf0, digest: 'sha256:e408ace97cd56846da9564a084e1482cedf26d50d6330e7e271993134a37818e', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.12' } + - { id: agent, version: 0.13.0-rc.40, commit: dcc33447821cd485d3eac04f2a3df24c35c64322, digest: 'sha256:2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.40' } + - { id: treedx, version: 0.3.0-rc.13, commit: b3d046bf4f9cfcc977fa21fa656b166d7cfce7e4, digest: 'sha256:3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.13' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:553940ebb5fa41980082c9b70b32367abc2c72fc2ae3d55a0efe46fe7dc0230e' +digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' From ddd7ffe4e2f90f3002052551199a86c3dab2dc5c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 23:11:54 -0400 Subject: [PATCH 146/501] Compose CLI rc43 and Deployment rc196 as generation 156 (#320) * Compose CLI rc43 and Deployment rc196 as generation 156 * ci: verify with accepted CLI rc43 --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index cfa522fb..d1c1ff05 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.42 - with: { version: 0.13.0-rc.42 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.43 + with: { version: 0.13.0-rc.43 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 74de39f0..16049d7f 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' } +integration: { id: development, digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e620627f..549ed828 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' } +integration: { id: development, digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index baf54a6a..16ec2add 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc195", - "generation": 155, + "release": "0.1.0~rc196", + "generation": 156, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d1d445be8521ee7cf2219ebca4255d8f39164fe3" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "562265e8bfb2da36ce8cd24adfd52f46da5667ff", "tag": "0.1.0-rc.195" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "be47e1074ff8f8e15736ce250642d56c3ae0bd99" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3cb2d223e3ef6b0ba32b1bd269bc849244f7a5ea", "tag": "0.1.0-rc.196" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.42", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.42.tgz", "sha256": "b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.43", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.43.tgz", "sha256": "e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T02:15:00.000Z" + "createdAt": "2026-09-01T03:10:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 084d22b8..4b46ebd0 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-156 +release: development-157 components: - - { id: deployment, version: 0.1.0-rc.195, commit: 562265e8bfb2da36ce8cd24adfd52f46da5667ff, digest: 'sha256:e2dd3b93a32463e8364d7b047f29b2e4359b4bbf763fdb379ccfd19793dd9d65', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.195/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.196, commit: 3cb2d223e3ef6b0ba32b1bd269bc849244f7a5ea, digest: 'sha256:1417fb12678c24e9ddfb9d022cd64049a880f6434c5e8771a04d5604b3062e91', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.196/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - - { id: cli, version: 0.13.0-rc.42, commit: 0990d6d82a058226c0a707cbcce58f2e483a9f1e, digest: 'sha256:b859af184ed146d3ae02a6f727eeeae888082c94daa77a3fc164b6509d73d0d3', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.42' } + - { id: cli, version: 0.13.0-rc.43, commit: ccaed021d2a9d9b463d7c53f17c1bd084911fe11, digest: 'sha256:e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.43' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.40, commit: dcc33447821cd485d3eac04f2a3df24c35c64322, digest: 'sha256:2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.40' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:294d54310ca2845af28ac44e33b234c8f577bd1fb7241867d6e1664884bea643' +digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' From 4b4f139bdc00405ccf23eadfd4884c25a6d19315 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 31 Aug 2026 23:37:17 -0400 Subject: [PATCH 147/501] Compose Deployment rc197 as generation 157 (#322) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 16049d7f..0476ecc2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' } +integration: { id: development, digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 549ed828..18506a0a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' } +integration: { id: development, digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 16ec2add..8d286cf0 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc196", - "generation": 156, + "release": "0.1.0~rc197", + "generation": 157, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "be47e1074ff8f8e15736ce250642d56c3ae0bd99" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3cb2d223e3ef6b0ba32b1bd269bc849244f7a5ea", "tag": "0.1.0-rc.196" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ddd7ffe4e2f90f3002052551199a86c3dab2dc5c" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "163c3a4d6aa73d9f3a9c85c283fa83c98a6d2a9e", "tag": "0.1.0-rc.197" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T03:10:00.000Z" + "createdAt": "2026-09-01T03:35:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 4b46ebd0..78f3fb4d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-157 +release: development-158 components: - - { id: deployment, version: 0.1.0-rc.196, commit: 3cb2d223e3ef6b0ba32b1bd269bc849244f7a5ea, digest: 'sha256:1417fb12678c24e9ddfb9d022cd64049a880f6434c5e8771a04d5604b3062e91', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.196/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.197, commit: 163c3a4d6aa73d9f3a9c85c283fa83c98a6d2a9e, digest: 'sha256:f005c02c23e77ab377104710e52e47343b0e4c15c1b52c88b98b3eb5fee2a58b', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.197/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - { id: cli, version: 0.13.0-rc.43, commit: ccaed021d2a9d9b463d7c53f17c1bd084911fe11, digest: 'sha256:e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.43' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:c407f6bba58434735e91e666f9fc4b75fd3ad96ba575611793a3b83de9a6a788' +digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' From 9acacd49190fe5a33e596f9a88e41a8631f2c716 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 00:06:20 -0400 Subject: [PATCH 148/501] compose Deployment rc198 as generation 158 (#324) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0476ecc2..daae2298 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' } +integration: { id: development, digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 18506a0a..7b2d11b5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' } +integration: { id: development, digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8d286cf0..5ffa6596 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc197", - "generation": 157, + "release": "0.1.0~rc198", + "generation": 158, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ddd7ffe4e2f90f3002052551199a86c3dab2dc5c" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "163c3a4d6aa73d9f3a9c85c283fa83c98a6d2a9e", "tag": "0.1.0-rc.197" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "4b4f139bdc00405ccf23eadfd4884c25a6d19315" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "de046dbcaf81250eb0cffd418450d6d94912240a", "tag": "0.1.0-rc.198" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T03:35:00.000Z" + "createdAt": "2026-09-01T04:05:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 78f3fb4d..092599d3 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-158 +release: development-159 components: - - { id: deployment, version: 0.1.0-rc.197, commit: 163c3a4d6aa73d9f3a9c85c283fa83c98a6d2a9e, digest: 'sha256:f005c02c23e77ab377104710e52e47343b0e4c15c1b52c88b98b3eb5fee2a58b', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.197/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.198, commit: de046dbcaf81250eb0cffd418450d6d94912240a, digest: 'sha256:fbc8aba82285066ea73f04ebe3909623d670510ad91ae83e13470990ca33b7d6', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.198/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - { id: cli, version: 0.13.0-rc.43, commit: ccaed021d2a9d9b463d7c53f17c1bd084911fe11, digest: 'sha256:e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.43' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:6629b575ffff8947ae372ec0641acf4d2ad7ac9b3724a0f352c0e72d56306097' +digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' From b172b0ec5eaaaa81e72772c98afae2e63e70a321 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 00:26:46 -0400 Subject: [PATCH 149/501] compose Deployment rc199 as generation 159 (#326) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index daae2298..da3da9b7 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' } +integration: { id: development, digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 7b2d11b5..2be5e019 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' } +integration: { id: development, digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 5ffa6596..ecbfe851 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc198", - "generation": 158, + "release": "0.1.0~rc199", + "generation": 159, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "4b4f139bdc00405ccf23eadfd4884c25a6d19315" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "de046dbcaf81250eb0cffd418450d6d94912240a", "tag": "0.1.0-rc.198" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "9acacd49190fe5a33e596f9a88e41a8631f2c716" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "e328360e8499a11c4aa4fb4cbfc66aa884d37c88", "tag": "0.1.0-rc.199" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T04:05:00.000Z" + "createdAt": "2026-09-01T04:25:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 092599d3..40c62549 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-159 +release: development-160 components: - - { id: deployment, version: 0.1.0-rc.198, commit: de046dbcaf81250eb0cffd418450d6d94912240a, digest: 'sha256:fbc8aba82285066ea73f04ebe3909623d670510ad91ae83e13470990ca33b7d6', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.198/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.199, commit: e328360e8499a11c4aa4fb4cbfc66aa884d37c88, digest: 'sha256:c1c9a76790fd3171d90e04adcaa80cf67e91ae0c066c4ba9810dbcda6e5f6006', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.199/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - { id: cli, version: 0.13.0-rc.43, commit: ccaed021d2a9d9b463d7c53f17c1bd084911fe11, digest: 'sha256:e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.43' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:3cd7164a0b5aaeb262406619741c4a3bb50b9e8d0d5db077eaf41d6257120fd2' +digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' From 964d7c38fdd60c02b5a3d5754a67e2f09424beb3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 01:46:42 -0400 Subject: [PATCH 150/501] compose CLI rc44 as generation 160 (#327) (#328) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index da3da9b7..8ce436a9 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' } +integration: { id: development, digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2be5e019..cae999a5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' } +integration: { id: development, digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ecbfe851..6bcaeaa1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc199", - "generation": 159, + "generation": 160, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "9acacd49190fe5a33e596f9a88e41a8631f2c716" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "b172b0ec5eaaaa81e72772c98afae2e63e70a321" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "e328360e8499a11c4aa4fb4cbfc66aa884d37c88", "tag": "0.1.0-rc.199" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.43", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.43.tgz", "sha256": "e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.44.tgz", "sha256": "c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T04:25:00.000Z" + "createdAt": "2026-09-01T05:45:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 40c62549..d25fb6d7 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-160 +release: development-161 components: - { id: deployment, version: 0.1.0-rc.199, commit: e328360e8499a11c4aa4fb4cbfc66aa884d37c88, digest: 'sha256:c1c9a76790fd3171d90e04adcaa80cf67e91ae0c066c4ba9810dbcda6e5f6006', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.199/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - - { id: cli, version: 0.13.0-rc.43, commit: ccaed021d2a9d9b463d7c53f17c1bd084911fe11, digest: 'sha256:e3b517b6f19cd0671d6b04510a31127c6038b3af71ae51de710ec6926e0956a0', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.43' } + - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.40, commit: dcc33447821cd485d3eac04f2a3df24c35c64322, digest: 'sha256:2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.40' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:bebebb9ccbe62ace9eac1078a69c64b2b630708d74cd5849d3a4d8b1609d3f7e' +digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' From ec42220ddcb0ef82639ac1663bd17a115e037430 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 01:53:51 -0400 Subject: [PATCH 151/501] compose Deployment rc200 as generation 161 (#329) (#330) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 8ce436a9..7b90a447 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' } +integration: { id: development, digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index cae999a5..d0d570d6 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' } +integration: { id: development, digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 6bcaeaa1..8cf5acb3 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc199", - "generation": 160, + "release": "0.1.0~rc200", + "generation": 161, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b172b0ec5eaaaa81e72772c98afae2e63e70a321" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "e328360e8499a11c4aa4fb4cbfc66aa884d37c88", "tag": "0.1.0-rc.199" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "964d7c38fdd60c02b5a3d5754a67e2f09424beb3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "d028311117243c1f190f248bce33699c81ef85dc", "tag": "0.1.0-rc.200" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T05:45:00.000Z" + "createdAt": "2026-09-01T05:52:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index d25fb6d7..0a3c1d7a 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-161 +release: development-162 components: - - { id: deployment, version: 0.1.0-rc.199, commit: e328360e8499a11c4aa4fb4cbfc66aa884d37c88, digest: 'sha256:c1c9a76790fd3171d90e04adcaa80cf67e91ae0c066c4ba9810dbcda6e5f6006', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.199/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.200, commit: d028311117243c1f190f248bce33699c81ef85dc, digest: 'sha256:756efd1de9ea17d525a5295ed9cd47df0a72720d4aa203961e11e3477a3bd7fc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.200/exact-head.json' } - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:de0516b7810aae43072d3a743c706127e4761e119740675f3bc3bd63994321c6' +digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' From fc7f818209378245d4f05193071cd01fe4f9e83d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 02:25:55 -0400 Subject: [PATCH 152/501] compose SDK rc67 and Agent rc41 as generation 162 (#331) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7b90a447..7dfbc260 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' } +integration: { id: development, digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index d0d570d6..42909f27 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' } +integration: { id: development, digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8cf5acb3..f018085d 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc200", - "generation": 161, + "generation": 162, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "964d7c38fdd60c02b5a3d5754a67e2f09424beb3" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ec42220ddcb0ef82639ac1663bd17a115e037430" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "d028311117243c1f190f248bce33699c81ef85dc", "tag": "0.1.0-rc.200" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.66", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.66.tgz", "sha256": "0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, @@ -28,12 +28,12 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc62-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/component-release.json", "sha256": "94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/compose.yml", "sha256": "07b38162a4c547b745343cae2a46288a8dc43c33df1f281d9d7d6e1f7f6880c7" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, - { "componentId": "agent", "release": "0.13.0~rc40-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.40/component-release.json", "sha256": "2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.40/compose.yml", "sha256": "a1a5db6ef956b1bcf264565b9ce90292bd1b4713138fe9757f82e5a09a9161ea" } }] }, + { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/component-release.json", "sha256": "3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/compose.yml", "sha256": "cfb123a328f68df71dc4d72f8526ae6cae3e041978ca9675127245a1b276b901" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T05:52:00.000Z" + "createdAt": "2026-09-01T06:25:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 0a3c1d7a..8ac7bd0f 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-162 +release: development-163 components: - { id: deployment, version: 0.1.0-rc.200, commit: d028311117243c1f190f248bce33699c81ef85dc, digest: 'sha256:756efd1de9ea17d525a5295ed9cd47df0a72720d4aa203961e11e3477a3bd7fc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.200/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.66, commit: 4103763f4bd662f24f29b1fed01dc22ff5c36ed2, digest: 'sha256:0935be9c80fb11c026643b0318aacbda51377887735465e461cc59c078649677', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.66' } + - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - - { id: agent, version: 0.13.0-rc.40, commit: dcc33447821cd485d3eac04f2a3df24c35c64322, digest: 'sha256:2da77db40704c8601b79632685ea1860d75ef7ac3e6cbbcfa031dd79d1bdff9d', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.40' } + - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.13, commit: b3d046bf4f9cfcc977fa21fa656b166d7cfce7e4, digest: 'sha256:3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.13' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:b3e99325d83b46c1005a16197f7d47569158b8feee04d1cd003c8048da774f89' +digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' From 931b418a247fb4dd2575f21bbe9f1878fc44b138 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 02:33:07 -0400 Subject: [PATCH 153/501] Compose Deployment rc201 as generation 163 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7dfbc260..2261ab37 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' } +integration: { id: development, digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 42909f27..a8dcd87f 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' } +integration: { id: development, digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f018085d..5b1230c3 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc200", - "generation": 162, + "release": "0.1.0~rc201", + "generation": 163, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ec42220ddcb0ef82639ac1663bd17a115e037430" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "d028311117243c1f190f248bce33699c81ef85dc", "tag": "0.1.0-rc.200" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "44106e63b198dd0768741ad0280f12361ec03375" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "27af69bd792e7bcb8be77a359aeebcc94b8b53f0", "tag": "0.1.0-rc.201" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T06:25:00.000Z" + "createdAt": "2026-09-01T06:35:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 8ac7bd0f..78cd4af4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-163 +release: development-164 components: - - { id: deployment, version: 0.1.0-rc.200, commit: d028311117243c1f190f248bce33699c81ef85dc, digest: 'sha256:756efd1de9ea17d525a5295ed9cd47df0a72720d4aa203961e11e3477a3bd7fc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.200/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.201, commit: 27af69bd792e7bcb8be77a359aeebcc94b8b53f0, digest: 'sha256:4d0bc2b7b1d92159cb29e94406cfc5c0ebbb4e37371eea583239a57565788316', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.201/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:de6279343b961aa326d7272e48a69cfd6b313568cb6e52458c73da2c55432f76' +digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' From cdbbd43ae9b3dd7b5b23d97bbacc1a2d8e84a7d2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 02:45:46 -0400 Subject: [PATCH 154/501] Compose Deployment rc202 as generation 164 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 2261ab37..925c2896 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' } +integration: { id: development, digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index a8dcd87f..cbc71d88 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' } +integration: { id: development, digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 5b1230c3..b6c0b32d 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc201", - "generation": 163, + "release": "0.1.0~rc202", + "generation": 164, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "44106e63b198dd0768741ad0280f12361ec03375" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "27af69bd792e7bcb8be77a359aeebcc94b8b53f0", "tag": "0.1.0-rc.201" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f8f968393da557c0c6b17b92e8d02310f87c78b5" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a4ccc668c1e810bf773990816b17d9b83b3e5965", "tag": "0.1.0-rc.202" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T06:35:00.000Z" + "createdAt": "2026-09-01T06:46:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 78cd4af4..467ff841 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-164 +release: development-165 components: - - { id: deployment, version: 0.1.0-rc.201, commit: 27af69bd792e7bcb8be77a359aeebcc94b8b53f0, digest: 'sha256:4d0bc2b7b1d92159cb29e94406cfc5c0ebbb4e37371eea583239a57565788316', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.201/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.202, commit: a4ccc668c1e810bf773990816b17d9b83b3e5965, digest: 'sha256:a9fdc351d10c7ad197a92aa55961a903acc8a2bc31758cec3275eb76e1e2c51f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.202/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4b25f09034f976d3731f806e143519b9277e80bf010093343859979b0c1c6615' +digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' From e7170bb5a90f072591756bbd1d03b1c0ae90761e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 03:14:49 -0400 Subject: [PATCH 155/501] Compose Deployment rc203 as generation 165 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 925c2896..f51b9950 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' } +integration: { id: development, digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index cbc71d88..e088cdbd 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' } +integration: { id: development, digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index b6c0b32d..8f32938f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc202", - "generation": 164, + "release": "0.1.0~rc203", + "generation": 165, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f8f968393da557c0c6b17b92e8d02310f87c78b5" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a4ccc668c1e810bf773990816b17d9b83b3e5965", "tag": "0.1.0-rc.202" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "574cd2d12408ae623fa331cc8c484d692881ae56" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c9cda1efd32565083dd269a63e08e09106172f69", "tag": "0.1.0-rc.203" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T06:46:00.000Z" + "createdAt": "2026-09-01T07:14:05.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 467ff841..fb6cf992 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-165 +release: development-166 components: - - { id: deployment, version: 0.1.0-rc.202, commit: a4ccc668c1e810bf773990816b17d9b83b3e5965, digest: 'sha256:a9fdc351d10c7ad197a92aa55961a903acc8a2bc31758cec3275eb76e1e2c51f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.202/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.203, commit: c9cda1efd32565083dd269a63e08e09106172f69, digest: 'sha256:a2fcea738df995030ba0f288129811805ed705d8ec53818d1a6a8b516fc70a98', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.203/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:d95881a8517346c36973a5e08f0206244ace3d8d9719652d42961eb10e757cb5' +digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' From 4e742fb633a6984e51a6f411391fd753b37f64ec Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 03:44:08 -0400 Subject: [PATCH 156/501] Compose Deployment rc204 as generation 166 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f51b9950..1b66da3c 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' } +integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e088cdbd..921f4be7 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' } +integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8f32938f..dba01bd1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc203", - "generation": 165, + "release": "0.1.0~rc204", + "generation": 166, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "574cd2d12408ae623fa331cc8c484d692881ae56" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c9cda1efd32565083dd269a63e08e09106172f69", "tag": "0.1.0-rc.203" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "01bb612b8c42623005f338815d153ff474d83ff5" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a266357f27d41c34ddeca434a6bae23e286cf08e", "tag": "0.1.0-rc.204" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T07:14:05.000Z" + "createdAt": "2026-09-01T07:43:22.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index fb6cf992..eb721d31 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-166 +release: development-167 components: - - { id: deployment, version: 0.1.0-rc.203, commit: c9cda1efd32565083dd269a63e08e09106172f69, digest: 'sha256:a2fcea738df995030ba0f288129811805ed705d8ec53818d1a6a8b516fc70a98', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.203/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.204, commit: a266357f27d41c34ddeca434a6bae23e286cf08e, digest: 'sha256:d3b2128db3958bad6adb8caee00194b1d415d8f008cc1664884cff8f3264f4a4', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.204/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:7b81c5344f05ed2720f06adc8c0b3db10002c7615433b31caa67aaedea4fd73d' +digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' From 0d6daf58d9d354eb63e84e6649678cf9fb2f3e49 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 04:13:04 -0400 Subject: [PATCH 157/501] Compose Deployment rc205 as generation 167 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 1b66da3c..3f918123 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } +integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 921f4be7..dfac54be 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } +integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index dba01bd1..1308f15f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc204", - "generation": 166, + "release": "0.1.0~rc205", + "generation": 167, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "01bb612b8c42623005f338815d153ff474d83ff5" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a266357f27d41c34ddeca434a6bae23e286cf08e", "tag": "0.1.0-rc.204" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e2f16fc6d03ae7e505b452b2c3df92f31aa19e03" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1aa1c7122b2e1b10a97b3201512e220f71c6ab47", "tag": "0.1.0-rc.205" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T07:43:22.000Z" + "createdAt": "2026-09-01T08:10:09.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index eb721d31..e2974a2e 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-167 +release: development-168 components: - - { id: deployment, version: 0.1.0-rc.204, commit: a266357f27d41c34ddeca434a6bae23e286cf08e, digest: 'sha256:d3b2128db3958bad6adb8caee00194b1d415d8f008cc1664884cff8f3264f4a4', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.204/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.205, commit: 1aa1c7122b2e1b10a97b3201512e220f71c6ab47, digest: 'sha256:d7acb7db2b1c243d8d937b4033e098aa55016220b6b3bdedbc5f968092dbc417', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.205/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' +digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' From 2ae51cd147d79ea1efd5c66c787dc6b4edb94afd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 04:23:03 -0400 Subject: [PATCH 158/501] Compose Deployment rc205 as generation 167 (#338) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 1b66da3c..3f918123 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } +integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 921f4be7..dfac54be 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' } +integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index dba01bd1..1308f15f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc204", - "generation": 166, + "release": "0.1.0~rc205", + "generation": 167, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "01bb612b8c42623005f338815d153ff474d83ff5" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a266357f27d41c34ddeca434a6bae23e286cf08e", "tag": "0.1.0-rc.204" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e2f16fc6d03ae7e505b452b2c3df92f31aa19e03" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1aa1c7122b2e1b10a97b3201512e220f71c6ab47", "tag": "0.1.0-rc.205" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T07:43:22.000Z" + "createdAt": "2026-09-01T08:10:09.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index eb721d31..e2974a2e 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-167 +release: development-168 components: - - { id: deployment, version: 0.1.0-rc.204, commit: a266357f27d41c34ddeca434a6bae23e286cf08e, digest: 'sha256:d3b2128db3958bad6adb8caee00194b1d415d8f008cc1664884cff8f3264f4a4', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.204/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.205, commit: 1aa1c7122b2e1b10a97b3201512e220f71c6ab47, digest: 'sha256:d7acb7db2b1c243d8d937b4033e098aa55016220b6b3bdedbc5f968092dbc417', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.205/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:366e241901f5c4724f052a025df81f9e0a02dfcf0000b5bc37a45791b3927af5' +digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' From b1516021c0e5896e0147f4068c62a8bf170add92 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 04:47:07 -0400 Subject: [PATCH 159/501] Compose Deployment rc206 as generation 168 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 3f918123..5f1d9ab1 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } +integration: { id: development, digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index dfac54be..bfdec87f 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' } +integration: { id: development, digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1308f15f..ec854008 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc205", - "generation": 167, + "release": "0.1.0~rc206", + "generation": 168, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e2f16fc6d03ae7e505b452b2c3df92f31aa19e03" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1aa1c7122b2e1b10a97b3201512e220f71c6ab47", "tag": "0.1.0-rc.205" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "2ae51cd147d79ea1efd5c66c787dc6b4edb94afd" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "24f70b928634103ccfbc86f4a52ffdb2f2c918d9", "tag": "0.1.0-rc.206" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T08:10:09.000Z" + "createdAt": "2026-09-01T08:35:02.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index e2974a2e..356a1706 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-168 +release: development-169 components: - - { id: deployment, version: 0.1.0-rc.205, commit: 1aa1c7122b2e1b10a97b3201512e220f71c6ab47, digest: 'sha256:d7acb7db2b1c243d8d937b4033e098aa55016220b6b3bdedbc5f968092dbc417', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.205/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.206, commit: 24f70b928634103ccfbc86f4a52ffdb2f2c918d9, digest: 'sha256:d4ccabd7fbb26c32796b6139ce491ea4e84f98814411fb8bc2bcbdb201bf924a', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.206/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:0b8dea422a85023e3f76c980a21fe69e6c9877bb12a7eef4ac93d804430ec023' +digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' From 2de0550ef9d4a5928d07a0a56ca6c237af9ec862 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 05:11:53 -0400 Subject: [PATCH 160/501] compose Deployment rc207 and CLI rc45 --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index d1c1ff05..63652dde 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.43 - with: { version: 0.13.0-rc.43 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.45 + with: { version: 0.13.0-rc.45 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 5f1d9ab1..6462243d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' } +integration: { id: development, digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bfdec87f..0e8addd6 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' } +integration: { id: development, digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ec854008..14cd29d0 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc206", - "generation": 168, + "release": "0.1.0~rc207", + "generation": 169, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "2ae51cd147d79ea1efd5c66c787dc6b4edb94afd" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "24f70b928634103ccfbc86f4a52ffdb2f2c918d9", "tag": "0.1.0-rc.206" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3f24089c7ce4317fb27d26449f8610a3570e7448" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c863b66069eebb9f195d9021fc310950ba184b8c", "tag": "0.1.0-rc.207" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.44", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.44.tgz", "sha256": "c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.45.tgz", "sha256": "52b1bdbfdc458fc181e762f8fa8a61b77bbde2d9b6c58ab3f6144a05c37de104" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T08:35:02.000Z" + "createdAt": "2026-09-01T09:10:55.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 356a1706..50cdb22e 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-169 +release: development-170 components: - - { id: deployment, version: 0.1.0-rc.206, commit: 24f70b928634103ccfbc86f4a52ffdb2f2c918d9, digest: 'sha256:d4ccabd7fbb26c32796b6139ce491ea4e84f98814411fb8bc2bcbdb201bf924a', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.206/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.207, commit: c863b66069eebb9f195d9021fc310950ba184b8c, digest: 'sha256:a222bc124a789641e202149ce06c418c31d99885417e840ba98a3496ef76c3d8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.207/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - - { id: cli, version: 0.13.0-rc.44, commit: 9b24526a0f6884862d63c4c785c6564f152a001e, digest: 'sha256:c2746ca5a70ebd8d373bdd91ba120882f2bf21ec8a30a6b017354c35c4a37a50', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.44' } + - { id: cli, version: 0.13.0-rc.45, commit: 30e94984df54f50f549b992d607ac35f73f0578b, digest: 'sha256:52b1bdbfdc458fc181e762f8fa8a61b77bbde2d9b6c58ab3f6144a05c37de104', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.45' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:60c566483f0079607d741876f7a5b548e4c0de9b45912d6a4f7d0665c92602e3' +digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' From d44157e2a559c8ca0e9b90239363c00a453652e5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 05:35:09 -0400 Subject: [PATCH 161/501] compose Deployment rc208 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 6462243d..6b2419dc 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' } +integration: { id: development, digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 0e8addd6..669a0e17 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' } +integration: { id: development, digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 14cd29d0..c1faad53 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc207", - "generation": 169, + "release": "0.1.0~rc208", + "generation": 170, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3f24089c7ce4317fb27d26449f8610a3570e7448" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c863b66069eebb9f195d9021fc310950ba184b8c", "tag": "0.1.0-rc.207" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e7062dc83fdec33bc65e5cb7ce4fc3a816eb3ef3" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a76131ff26e6fac32073c55b8c639746645692bd", "tag": "0.1.0-rc.208" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T09:10:55.000Z" + "createdAt": "2026-09-01T09:34:27.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 50cdb22e..5de33b4a 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-170 +release: development-171 components: - - { id: deployment, version: 0.1.0-rc.207, commit: c863b66069eebb9f195d9021fc310950ba184b8c, digest: 'sha256:a222bc124a789641e202149ce06c418c31d99885417e840ba98a3496ef76c3d8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.207/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.208, commit: a76131ff26e6fac32073c55b8c639746645692bd, digest: 'sha256:9280f2dd1ce9951a2cfaf9dc6266a0d43f1bc7a960e6029b9b64837bb78a4782', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.208/exact-head.json' } - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - { id: cli, version: 0.13.0-rc.45, commit: 30e94984df54f50f549b992d607ac35f73f0578b, digest: 'sha256:52b1bdbfdc458fc181e762f8fa8a61b77bbde2d9b6c58ab3f6144a05c37de104', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.45' } - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:e944f28dd9197188e4c700a6f7f89674ad28f6645e9338f4ec0b19d687831919' +digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' From 5ecceffab67f5f9a5cfc19b8b7f2122632f7e712 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 06:32:11 -0400 Subject: [PATCH 162/501] compose governed project creation releases --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 14 +++++++------- config/integrations/development.yaml | 10 +++++----- templates/engineering.yaml | 11 +++++++++++ 6 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 templates/engineering.yaml diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 63652dde..dc909049 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.45 - with: { version: 0.13.0-rc.45 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.46 + with: { version: 0.13.0-rc.46 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 6b2419dc..9f81071e 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' } +integration: { id: development, digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 669a0e17..b524a444 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' } +integration: { id: development, digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c1faad53..3de44ee8 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc208", - "generation": 170, + "generation": 171, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e7062dc83fdec33bc65e5cb7ce4fc3a816eb3ef3" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "b1d68ec4e6604684d3e738c67c1da42172149f8e" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "a76131ff26e6fac32073c55b8c639746645692bd", "tag": "0.1.0-rc.208" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.67", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.67.tgz", "sha256": "37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.62", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/treeseed-api-0.8.0-rc.62.tgz", "sha256": "182641455a560852c1e4ba37ce1a08727cd5f922d0288e19005cfdae316f5e56" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.63", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/treeseed-api-0.8.0-rc.63.tgz", "sha256": "0a3263eb40772aa15fc15a1a7582f440282535ac7db6a1058b926192a0cbc43a" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.45", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.45.tgz", "sha256": "52b1bdbfdc458fc181e762f8fa8a61b77bbde2d9b6c58ab3f6144a05c37de104" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.46", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.46.tgz", "sha256": "4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc62-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/component-release.json", "sha256": "94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.62/compose.yml", "sha256": "07b38162a4c547b745343cae2a46288a8dc43c33df1f281d9d7d6e1f7f6880c7" } }] }, + { "componentId": "api", "release": "0.8.0~rc63-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/component-release.json", "sha256": "26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/compose.yml", "sha256": "1c333efa68b10c090bb05c37576f251396477db316fe8fc7e4a5c2f4fd33bedd" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/component-release.json", "sha256": "3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/compose.yml", "sha256": "cfb123a328f68df71dc4d72f8526ae6cae3e041978ca9675127245a1b276b901" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T09:34:27.000Z" + "createdAt": "2026-09-01T10:31:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5de33b4a..9b43c447 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-171 +release: development-172 components: - { id: deployment, version: 0.1.0-rc.208, commit: a76131ff26e6fac32073c55b8c639746645692bd, digest: 'sha256:9280f2dd1ce9951a2cfaf9dc6266a0d43f1bc7a960e6029b9b64837bb78a4782', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.208/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.67, commit: 239ec96f4ce261e551f185216af9d0d7976e0372, digest: 'sha256:37a6af326cdaec13af864db9b94f111b8e80e0384dc28253f1ea6da65d95029c', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.67' } - - { id: cli, version: 0.13.0-rc.45, commit: 30e94984df54f50f549b992d607ac35f73f0578b, digest: 'sha256:52b1bdbfdc458fc181e762f8fa8a61b77bbde2d9b6c58ab3f6144a05c37de104', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.45' } - - { id: api, version: 0.8.0-rc.62, commit: 9b439e9b2f9dea8c18fb96326e5a06cb1e34d946, digest: 'sha256:94dbdf14f5520acc706a5fc3f514b5c27e777842f0b73139ff80c49b838fc738', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.62' } + - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } + - { id: cli, version: 0.13.0-rc.46, commit: a55381c50266da9fb629da23a7de3f4b1dab8028, digest: 'sha256:4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.46' } + - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.13, commit: b3d046bf4f9cfcc977fa21fa656b166d7cfce7e4, digest: 'sha256:3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.13' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:7bfeadf9d0043cbf95dd466c0f3a315befd68bee523e2a24f5abae1c639c03d9' +digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' diff --git a/templates/engineering.yaml b/templates/engineering.yaml new file mode 100644 index 00000000..dc11b163 --- /dev/null +++ b/templates/engineering.yaml @@ -0,0 +1,11 @@ +schemaVersion: treeseed.platform-template-lock/v1 +id: engineering +version: 1.0.0-rc.5 +repository: treeseed-ai/template-engineering +commit: 1ea645d4825aa6bb9bb6b371696fbab70b611ae3 +tag: template/1.0.0-rc.5 +artifact: + url: https://github.com/treeseed-ai/template-engineering/releases/download/template%2F1.0.0-rc.5/engineering-template.tgz + digest: sha256:bd0307d90291cb5bc4e6c63c2344cf18dd62173b5a9ba265a20ca117d61fa37b +contract: + digest: sha256:230ea6a6e0412f29530f1d980d4bd101662bde20bdd3f47dc51edb56622602e7 From 217a7bda4e8516830f8315a10a383b0a05953c23 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 06:52:12 -0400 Subject: [PATCH 163/501] compose Deployment rc209 as generation 172 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 9f81071e..c79aa448 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' } +integration: { id: development, digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index b524a444..c32e6aed 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' } +integration: { id: development, digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 3de44ee8..619f5a12 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc208", - "generation": 171, + "release": "0.1.0~rc209", + "generation": 172, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "b1d68ec4e6604684d3e738c67c1da42172149f8e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a76131ff26e6fac32073c55b8c639746645692bd", "tag": "0.1.0-rc.208" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "a580afc9e06be45ed2f264f0e3e21c9995fbaec6" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "b936e410ad5b52775a05575eb478b0c4c3280fce", "tag": "0.1.0-rc.209" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.63", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/treeseed-api-0.8.0-rc.63.tgz", "sha256": "0a3263eb40772aa15fc15a1a7582f440282535ac7db6a1058b926192a0cbc43a" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T10:31:00.000Z" + "createdAt": "2026-09-01T10:52:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9b43c447..ff64e49b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-172 +release: development-173 components: - - { id: deployment, version: 0.1.0-rc.208, commit: a76131ff26e6fac32073c55b8c639746645692bd, digest: 'sha256:9280f2dd1ce9951a2cfaf9dc6266a0d43f1bc7a960e6029b9b64837bb78a4782', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.208/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.209, commit: b936e410ad5b52775a05575eb478b0c4c3280fce, digest: 'sha256:f08694999b49c1c9aefd06c58ecf203ed99d13fccf4675cd32e0af419fa17ca6', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.209/exact-head.json' } - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } - { id: cli, version: 0.13.0-rc.46, commit: a55381c50266da9fb629da23a7de3f4b1dab8028, digest: 'sha256:4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.46' } - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:0bd6de72c12598f4a2526fb939da2e4cd051a25c71bea992b6b4e1cea021eaa0' +digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' From 5f8cf001d9b373634c28a93d7e43c2626d0f23a2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 14:31:03 -0400 Subject: [PATCH 164/501] compose Deployment rc210 as generation 173 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index c79aa448..43b5108d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' } +integration: { id: development, digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index c32e6aed..eca938ee 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' } +integration: { id: development, digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 619f5a12..799550bc 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc209", - "generation": 172, + "release": "0.1.0~rc210", + "generation": 173, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "a580afc9e06be45ed2f264f0e3e21c9995fbaec6" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "b936e410ad5b52775a05575eb478b0c4c3280fce", "tag": "0.1.0-rc.209" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e2a374702f13c3e7a0f97f1bf0ed642b3ddc6573" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab", "tag": "0.1.0-rc.210" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.63", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/treeseed-api-0.8.0-rc.63.tgz", "sha256": "0a3263eb40772aa15fc15a1a7582f440282535ac7db6a1058b926192a0cbc43a" } }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index ff64e49b..5cf86c04 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-173 +release: development-174 components: - - { id: deployment, version: 0.1.0-rc.209, commit: b936e410ad5b52775a05575eb478b0c4c3280fce, digest: 'sha256:f08694999b49c1c9aefd06c58ecf203ed99d13fccf4675cd32e0af419fa17ca6', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.209/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.210, commit: 4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab, digest: 'sha256:d1ca792e30ddee2dfacdce88f6501f41cd427ba1f14bddea6567946b63d72cf0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.210/exact-head.json' } - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } - { id: cli, version: 0.13.0-rc.46, commit: a55381c50266da9fb629da23a7de3f4b1dab8028, digest: 'sha256:4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.46' } - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:2435ef2a1d4084558a429049462ff4b06625cdd197843336608d73c4eca0f0d8' +digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' From 1424b5dc5bf375f327f3ba40ebd92a8a72a9486b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 15:46:50 -0400 Subject: [PATCH 165/501] compose TreeDX rc14 as generation 174 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 43b5108d..e23aed71 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' } +integration: { id: development, digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index eca938ee..187a745d 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' } +integration: { id: development, digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 799550bc..c89b8a36 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc210", - "generation": 173, + "generation": 174, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e2a374702f13c3e7a0f97f1bf0ed642b3ddc6573" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e37b99b8bb9855dc29c128f3d2f792c5eebe2f06" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab", "tag": "0.1.0-rc.210" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, @@ -15,7 +15,7 @@ { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.46", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.46.tgz", "sha256": "4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.13", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.13.tgz", "sha256": "b35d71151f5d03597709f7d7b22f6c72d7f6b82543f89ce63a40874b52946a2d" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.14.tgz", "sha256": "ea94f66a9747912ef1c765e8a817524d70a42318f280bc858fcac73068ad0439" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], @@ -29,7 +29,7 @@ { "componentId": "api", "release": "0.8.0~rc63-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/component-release.json", "sha256": "26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/compose.yml", "sha256": "1c333efa68b10c090bb05c37576f251396477db316fe8fc7e4a5c2f4fd33bedd" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc13-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/component-release.json", "sha256": "3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.13/compose.yml", "sha256": "cfb123a328f68df71dc4d72f8526ae6cae3e041978ca9675127245a1b276b901" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/component-release.json", "sha256": "8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/compose.yml", "sha256": "1d976278bd6fcc777866d7aa0941e5ab1e6127475f5c3925c9bdde1a92d9382a" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5cf86c04..e8ab68e1 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,5 +1,5 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-174 +release: development-175 components: - { id: deployment, version: 0.1.0-rc.210, commit: 4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab, digest: 'sha256:d1ca792e30ddee2dfacdce88f6501f41cd427ba1f14bddea6567946b63d72cf0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.210/exact-head.json' } - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } @@ -7,8 +7,8 @@ components: - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - - { id: treedx, version: 0.3.0-rc.13, commit: b3d046bf4f9cfcc977fa21fa656b166d7cfce7e4, digest: 'sha256:3a629d42cc081ecee07d78cfb0a4cc8edde9e17787ab4f66649ab7e9dfc3b643', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.13' } + - { id: treedx, version: 0.3.0-rc.14, commit: c19d6b17f1a01c0e1a22cecb9656915bedde68fb, digest: 'sha256:8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.14' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:f666e1968a91e38345caaaf6e53a587390136849213cbf5e98262efe7fdb9360' +digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' From 6896ae04db6e9e5d9b90e82b584532a4e7a09552 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 16:09:11 -0400 Subject: [PATCH 166/501] compose Deployment rc211 as generation 175 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index e23aed71..69d76004 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' } +integration: { id: development, digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 187a745d..e402455c 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' } +integration: { id: development, digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c89b8a36..b704c3f3 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc210", - "generation": 174, + "release": "0.1.0~rc211", + "generation": 175, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e37b99b8bb9855dc29c128f3d2f792c5eebe2f06" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab", "tag": "0.1.0-rc.210" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6bc5f9cedfff6ffabc678f69f0a8aa95dfdcc9b8" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "acd8778485f900f7021ad8f245a71dd45a8b2222", "tag": "0.1.0-rc.211" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.63", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/treeseed-api-0.8.0-rc.63.tgz", "sha256": "0a3263eb40772aa15fc15a1a7582f440282535ac7db6a1058b926192a0cbc43a" } }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index e8ab68e1..73354ba1 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-175 +release: development-176 components: - - { id: deployment, version: 0.1.0-rc.210, commit: 4b5a11ca4ae9a91ac1c7193e49866bce8d1aa7ab, digest: 'sha256:d1ca792e30ddee2dfacdce88f6501f41cd427ba1f14bddea6567946b63d72cf0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.210/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.211, commit: acd8778485f900f7021ad8f245a71dd45a8b2222, digest: 'sha256:9c3174f651dad2c3e301dc3575d1571c0e9f049263960da033a34beb2a6989cb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.211/exact-head.json' } - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } - { id: cli, version: 0.13.0-rc.46, commit: a55381c50266da9fb629da23a7de3f4b1dab8028, digest: 'sha256:4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.46' } - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:5552e7f5fd0f5d616b737ba949d37a3457a9eb98e277a1de8a1ab187e1439c82' +digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' From 7a2aa6e8db64b7620a5bad76826c6bb0254b81be Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 17:48:39 -0400 Subject: [PATCH 167/501] compose provider environment release chain --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 16 ++++++++-------- config/integrations/development.yaml | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 69d76004..36237dd8 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' } +integration: { id: development, digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e402455c..668d0dac 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' } +integration: { id: development, digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index b704c3f3..874973eb 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc211", - "generation": 175, + "release": "0.1.0~rc212", + "generation": 176, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6bc5f9cedfff6ffabc678f69f0a8aa95dfdcc9b8" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "acd8778485f900f7021ad8f245a71dd45a8b2222", "tag": "0.1.0-rc.211" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f38320f2f633b39a5a00137f1248c06241e84857" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "639aaf4eaca3250a603c625574b9b767066e0507", "tag": "0.1.0-rc.212" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.68", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.68.tgz", "sha256": "e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.63", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/treeseed-api-0.8.0-rc.63.tgz", "sha256": "0a3263eb40772aa15fc15a1a7582f440282535ac7db6a1058b926192a0cbc43a" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.64", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/treeseed-api-0.8.0-rc.64.tgz", "sha256": "f5cff46019e38f7137f2dbdc14505445c0443959a98c602883eef2082587cf7d" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.46", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.46.tgz", "sha256": "4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.47", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.47.tgz", "sha256": "27b23d6f3956938df61996191ef621a06e85fec523785be18676d7ddc0bcd51c" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.14.tgz", "sha256": "ea94f66a9747912ef1c765e8a817524d70a42318f280bc858fcac73068ad0439" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc63-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/component-release.json", "sha256": "26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.63/compose.yml", "sha256": "1c333efa68b10c090bb05c37576f251396477db316fe8fc7e4a5c2f4fd33bedd" } }] }, + { "componentId": "api", "release": "0.8.0~rc64-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/component-release.json", "sha256": "f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/compose.yml", "sha256": "4fb48c9e76e37c17efdb15d4a194b59a4f1553814028448035afd61de620e104" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/component-release.json", "sha256": "8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/compose.yml", "sha256": "1d976278bd6fcc777866d7aa0941e5ab1e6127475f5c3925c9bdde1a92d9382a" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 73354ba1..661a733b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-176 +release: development-177 components: - - { id: deployment, version: 0.1.0-rc.211, commit: acd8778485f900f7021ad8f245a71dd45a8b2222, digest: 'sha256:9c3174f651dad2c3e301dc3575d1571c0e9f049263960da033a34beb2a6989cb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.211/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.68, commit: fad0f98a1b29acd8150c77daa31b348501028c06, digest: 'sha256:e34a16904f150e314296385efaec7e901692cb9e55e042c03df91cdc581d96a6', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.68' } - - { id: cli, version: 0.13.0-rc.46, commit: a55381c50266da9fb629da23a7de3f4b1dab8028, digest: 'sha256:4443e85e16695b2a60a72a38c10f1266d5d25202fbfd9fd3b50aead3e20cf864', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.46' } - - { id: api, version: 0.8.0-rc.63, commit: d50c5d86d37a6974582ef099c37deffedb293012, digest: 'sha256:26584b94be70038b95d9331a6afcacf018683a5198edd32cd15206890970ea58', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.63' } + - { id: deployment, version: 0.1.0-rc.212, commit: 639aaf4eaca3250a603c625574b9b767066e0507, digest: 'sha256:24fa6fcde0f8db734f4ac64ae0b2decbb637ce5ef823c0dd027855a287192d83', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.212/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } + - { id: cli, version: 0.13.0-rc.47, commit: befe80fce0e68298b46f7935d4f43f036385b424, digest: 'sha256:27b23d6f3956938df61996191ef621a06e85fec523785be18676d7ddc0bcd51c', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.47' } + - { id: api, version: 0.8.0-rc.64, commit: 5cf0e009c38497448aa9dc46ccc67a0165ee5325, digest: 'sha256:f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.64' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.14, commit: c19d6b17f1a01c0e1a22cecb9656915bedde68fb, digest: 'sha256:8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.14' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:10913e90277419050ea078bad5509cf265ca9a2f342e1bd1d12f0c5345eef85b' +digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' From b11413d0e3c3304f9b617b57d80874d55577c8f6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 17:51:03 -0400 Subject: [PATCH 168/501] ci: verify with selected CLI rc47 --- .github/workflows/verify.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index dc909049..f03c8eff 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.46 - with: { version: 0.13.0-rc.46 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.47 + with: { version: 0.13.0-rc.47 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json From dc8a1816af240431bf32ac598e9e6d8d49c91bb8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 18:10:02 -0400 Subject: [PATCH 169/501] chore: compose Deployment rc213 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 36237dd8..3ef4837b 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' } +integration: { id: development, digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 668d0dac..618e0fd6 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' } +integration: { id: development, digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 874973eb..7098995c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc212", - "generation": 176, + "release": "0.1.0~rc213", + "generation": 177, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f38320f2f633b39a5a00137f1248c06241e84857" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "639aaf4eaca3250a603c625574b9b767066e0507", "tag": "0.1.0-rc.212" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "1ff8d0bbe268928782af36e14bafbbad1ead9f74" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a2edb51e693926f8358835d2105d487a1d793a98", "tag": "0.1.0-rc.213" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.64", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/treeseed-api-0.8.0-rc.64.tgz", "sha256": "f5cff46019e38f7137f2dbdc14505445c0443959a98c602883eef2082587cf7d" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T10:52:00.000Z" + "createdAt": "2026-09-01T22:00:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 661a733b..5f8165f7 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-177 +release: development-178 components: - - { id: deployment, version: 0.1.0-rc.212, commit: 639aaf4eaca3250a603c625574b9b767066e0507, digest: 'sha256:24fa6fcde0f8db734f4ac64ae0b2decbb637ce5ef823c0dd027855a287192d83', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.212/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.213, commit: a2edb51e693926f8358835d2105d487a1d793a98, digest: 'sha256:a3dfb6ae519415f878feb141373dab8acf6662febd979ae0c2f49afc4ddb2ff2', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.213/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - { id: cli, version: 0.13.0-rc.47, commit: befe80fce0e68298b46f7935d4f43f036385b424, digest: 'sha256:27b23d6f3956938df61996191ef621a06e85fec523785be18676d7ddc0bcd51c', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.47' } - { id: api, version: 0.8.0-rc.64, commit: 5cf0e009c38497448aa9dc46ccc67a0165ee5325, digest: 'sha256:f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.64' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:1c55d4f903a7a9ab3844ec9135daa5a96108dde077be7c976417cc913a355ceb' +digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' From f6ae490a8605752c1e6489e6d887efe0dede18be Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 18:21:15 -0400 Subject: [PATCH 170/501] chore: compose CLI rc48 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 3ef4837b..4ca66984 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' } +integration: { id: development, digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 618e0fd6..813af30a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' } +integration: { id: development, digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7098995c..87afeeb1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc213", - "generation": 177, + "generation": 178, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "1ff8d0bbe268928782af36e14bafbbad1ead9f74" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "7d9df4f83b636859fc35f94d0ae524ae0b49c358" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "a2edb51e693926f8358835d2105d487a1d793a98", "tag": "0.1.0-rc.213" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.47", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.47.tgz", "sha256": "27b23d6f3956938df61996191ef621a06e85fec523785be18676d7ddc0bcd51c" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.48", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.48.tgz", "sha256": "56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.14.tgz", "sha256": "ea94f66a9747912ef1c765e8a817524d70a42318f280bc858fcac73068ad0439" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T22:00:00.000Z" + "createdAt": "2026-09-01T22:20:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5f8165f7..085b48dc 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-178 +release: development-179 components: - { id: deployment, version: 0.1.0-rc.213, commit: a2edb51e693926f8358835d2105d487a1d793a98, digest: 'sha256:a3dfb6ae519415f878feb141373dab8acf6662febd979ae0c2f49afc4ddb2ff2', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.213/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - - { id: cli, version: 0.13.0-rc.47, commit: befe80fce0e68298b46f7935d4f43f036385b424, digest: 'sha256:27b23d6f3956938df61996191ef621a06e85fec523785be18676d7ddc0bcd51c', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.47' } + - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - { id: api, version: 0.8.0-rc.64, commit: 5cf0e009c38497448aa9dc46ccc67a0165ee5325, digest: 'sha256:f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.64' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:81602f8c313f6888b799f0c9590e262ae775abbf99d0372b8d829b7370ffa321' +digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' From a0cbe82dcc4312a16323d15d03d801133de42673 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 19:07:33 -0400 Subject: [PATCH 171/501] chore: compose API rc65 and Deployment rc214 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 14 +++++++------- config/integrations/development.yaml | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 4ca66984..c99efcc0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' } +integration: { id: development, digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 813af30a..f378793a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' } +integration: { id: development, digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 87afeeb1..5fd37d9e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc213", - "generation": 178, + "release": "0.1.0~rc214", + "generation": 179, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "7d9df4f83b636859fc35f94d0ae524ae0b49c358" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a2edb51e693926f8358835d2105d487a1d793a98", "tag": "0.1.0-rc.213" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "fce799ae427055957f1d6a95d40dd4c0ea07b930", "tag": "0.1.0-rc.214" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.64", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/treeseed-api-0.8.0-rc.64.tgz", "sha256": "f5cff46019e38f7137f2dbdc14505445c0443959a98c602883eef2082587cf7d" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.65", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/treeseed-api-0.8.0-rc.65.tgz", "sha256": "c624c6d4d6caa00976ddd461968f01275bf125b82a179d46e9770207dfcdde0f" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc64-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/component-release.json", "sha256": "f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.64/compose.yml", "sha256": "4fb48c9e76e37c17efdb15d4a194b59a4f1553814028448035afd61de620e104" } }] }, + { "componentId": "api", "release": "0.8.0~rc65-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/component-release.json", "sha256": "cff96bfc3a470dc040c0439aa91d30502aedbd71c7ab276687c8eff964f6fc32" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/compose.yml", "sha256": "5ff2aea5ee05b1c90bcb932ddf5e93f1b9bc2a632ddefd7c9ec933135d33786e" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/component-release.json", "sha256": "8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/compose.yml", "sha256": "1d976278bd6fcc777866d7aa0941e5ab1e6127475f5c3925c9bdde1a92d9382a" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T22:20:00.000Z" + "createdAt": "2026-09-01T23:10:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 085b48dc..5c9b998b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-179 +release: development-180 components: - - { id: deployment, version: 0.1.0-rc.213, commit: a2edb51e693926f8358835d2105d487a1d793a98, digest: 'sha256:a3dfb6ae519415f878feb141373dab8acf6662febd979ae0c2f49afc4ddb2ff2', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.213/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.214, commit: fce799ae427055957f1d6a95d40dd4c0ea07b930, digest: 'sha256:91545a8304d00bbe87d5846d33716577c87c282714da89ceccc223624ba054c7', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.214/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - - { id: api, version: 0.8.0-rc.64, commit: 5cf0e009c38497448aa9dc46ccc67a0165ee5325, digest: 'sha256:f4a8a1c72529c7d667f5207e4b3a13a76cf6009aaa90eed5702957d2fff60f71', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.64' } + - { id: api, version: 0.8.0-rc.65, commit: c339820ca746d7bcb71acb9022fd1c58daa83062, digest: 'sha256:cff96bfc3a470dc040c0439aa91d30502aedbd71c7ab276687c8eff964f6fc32', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.65' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.14, commit: c19d6b17f1a01c0e1a22cecb9656915bedde68fb, digest: 'sha256:8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.14' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:1631b9a3f421040d4ca59845f352f1170546c0965084e54196e9ed347ba02758' +digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' From 4b846b7f18e848223e7810c1239b4fdad2cd8c96 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 19:08:42 -0400 Subject: [PATCH 172/501] ci: verify with selected CLI rc48 --- .github/workflows/verify.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index f03c8eff..fd71b24b 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.47 - with: { version: 0.13.0-rc.47 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.48 + with: { version: 0.13.0-rc.48 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json From 414672ca0127c5ea5b51097869656c0aa2d5468c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 19:36:02 -0400 Subject: [PATCH 173/501] fix(seeds): restore portable v3 inventory --- seeds/README.md | 12 ++++-- seeds/treeseed.yaml | 96 +++++++++++++++++++++++++++++---------------- 2 files changed, 70 insertions(+), 38 deletions(-) diff --git a/seeds/README.md b/seeds/README.md index 66d32cb7..3b394006 100644 --- a/seeds/README.md +++ b/seeds/README.md @@ -13,7 +13,11 @@ trsd seeds apply seeds/treeseed.yaml trsd seeds verify treeseed ``` -The seed declares one local `treeseed.capacity-provider/v3` battery with -communication, platform, and workday lanes. Enrollment and owner approval are -runtime operations; no token, key, membership credential, or interactive -service-principal credential belongs in either YAML file. +The authenticated user applying a local seed becomes an owner of every team +created by that seed. The bundle therefore contains no personal membership or +email bootstrap. + +Capacity-provider identity, capacity, enrollment, environment grants, and +owner approval are runtime operations. No token, key, host capacity, provider +identity, membership credential, or interactive service-principal credential +belongs in the portable seed. diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index ebcad042..a64dc62a 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,39 +1,67 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 5 -description: Portable first-party source inventory for integrated and selective development. +version: 6 +description: Portable first-party source and library inventory for integrated and selective development. +environments: [local] +digest: sha256:e3613e0ffeee07fd9ccd461f756c6fe9490069a8d8ceaa155bf1b247963ed57d resources: + teams: + - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } + # The authenticated local seed actor becomes a team owner at apply time. Keep + # personal identities and host-specific membership bootstrap out of Platform. + memberships: [] projects: - - { key: 'project:treeseed/platform', slug: platform, primaryRepository: 'repository:treeseed/platform' } - - { key: 'project:treeseed/deployment', slug: deployment, primaryRepository: 'repository:treeseed/deployment' } - - { key: 'project:treeseed/api', slug: api, primaryRepository: 'repository:treeseed/api' } - - { key: 'project:treeseed/treedx', slug: treedx, primaryRepository: 'repository:treeseed/treedx' } - - { key: 'project:treeseed/sdk', slug: sdk, primaryRepository: 'repository:treeseed/sdk' } - - { key: 'project:treeseed/ui', slug: ui, primaryRepository: 'repository:treeseed/ui' } - - { key: 'project:treeseed/cli', slug: cli, primaryRepository: 'repository:treeseed/cli' } - - { key: 'project:treeseed/core', slug: core, primaryRepository: 'repository:treeseed/core' } - - { key: 'project:treeseed/admin', slug: admin, primaryRepository: 'repository:treeseed/admin' } - - { key: 'project:treeseed/agent', slug: agent, primaryRepository: 'repository:treeseed/agent' } - - { key: 'project:treeseed/reviewer', slug: reviewer, primaryRepository: 'repository:treeseed/reviewer' } - - { key: 'project:treeseed/template-engineering', slug: template-engineering, primaryRepository: 'repository:treeseed/template-engineering' } - - { key: 'project:treeseed/template-research', slug: template-research, primaryRepository: 'repository:treeseed/template-research' } - - { key: 'project:treeseed/market', slug: market, primaryRepository: 'repository:treeseed/market' } - - { key: 'project:treeseed/market-api', slug: market-api, primaryRepository: 'repository:treeseed/market-api' } - - { key: 'project:treeseed/skill', slug: skill, primaryRepository: 'repository:treeseed/skill' } + - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } + - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Debian bootstrap and host-manager integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } + - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } + - { key: 'project:treeseed/treedx', team: 'team:treeseed', slug: treedx, name: TreeDX, description: Independent content and knowledge service., kind: service, primaryRepository: 'repository:treeseed/treedx', libraryRepository: 'repository:treeseed/treedx-library' } + - { key: 'project:treeseed/sdk', team: 'team:treeseed', slug: sdk, name: TreeSeed SDK, description: Portable contracts and remote clients., kind: package, primaryRepository: 'repository:treeseed/sdk', libraryRepository: 'repository:treeseed/sdk-library', metadata: { packageId: '@treeseed/sdk' } } + - { key: 'project:treeseed/ui', team: 'team:treeseed', slug: ui, name: TreeSeed UI, description: Shared TreeSeed user-interface package., kind: package, primaryRepository: 'repository:treeseed/ui', libraryRepository: 'repository:treeseed/ui-library', metadata: { packageId: '@treeseed/ui' } } + - { key: 'project:treeseed/cli', team: 'team:treeseed', slug: cli, name: TreeSeed CLI, description: Human-centered TreeSeed command-line interface., kind: package, primaryRepository: 'repository:treeseed/cli', libraryRepository: 'repository:treeseed/cli-library', metadata: { packageId: '@treeseed/cli' } } + - { key: 'project:treeseed/core', team: 'team:treeseed', slug: core, name: TreeSeed Core, description: Core TreeSeed package., kind: package, primaryRepository: 'repository:treeseed/core', libraryRepository: 'repository:treeseed/core-library', metadata: { packageId: '@treeseed/core' } } + - { key: 'project:treeseed/admin', team: 'team:treeseed', slug: admin, name: TreeSeed Admin, description: TreeSeed administration interface., kind: package, primaryRepository: 'repository:treeseed/admin', libraryRepository: 'repository:treeseed/admin-library', metadata: { packageId: '@treeseed/admin' } } + - { key: 'project:treeseed/agent', team: 'team:treeseed', slug: agent, name: TreeSeed Agent, description: Capacity-provider and agent execution runtime., kind: package, primaryRepository: 'repository:treeseed/agent', libraryRepository: 'repository:treeseed/agent-library', metadata: { packageId: '@treeseed/agent' } } + - { key: 'project:treeseed/reviewer', team: 'team:treeseed', slug: reviewer, name: TreeSeed Reviewer, description: Independent review package., kind: package, primaryRepository: 'repository:treeseed/reviewer', libraryRepository: 'repository:treeseed/reviewer-library', metadata: { packageId: '@treeseed/reviewer' } } + - { key: 'project:treeseed/template-engineering', team: 'team:treeseed', slug: template-engineering, name: Engineering Template, description: Engineering project template., kind: template, primaryRepository: 'repository:treeseed/template-engineering', libraryRepository: 'repository:treeseed/template-engineering-library' } + - { key: 'project:treeseed/template-research', team: 'team:treeseed', slug: template-research, name: Research Template, description: Research project template., kind: template, primaryRepository: 'repository:treeseed/template-research', libraryRepository: 'repository:treeseed/template-research-library' } + - { key: 'project:treeseed/market', team: 'team:treeseed', slug: market, name: TreeSeed Market, description: First-party portfolio product with independent hosted-deployment authority., kind: product, primaryRepository: 'repository:treeseed/market', libraryRepository: 'repository:treeseed/market-library' } + - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service with independent hosted-deployment authority., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } + - { key: 'project:treeseed/skill', team: 'team:treeseed', slug: skill, name: TreeSeed Skill, description: Versioned agent skill for operating the TreeSeed ecosystem., kind: skill, primaryRepository: 'repository:treeseed/skill', libraryRepository: 'repository:treeseed/skill-library' } repositories: - - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, gitUrl: 'https://github.com/treeseed-ai/treedx.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, gitUrl: 'https://github.com/treeseed-ai/sdk.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, gitUrl: 'https://github.com/treeseed-ai/ui.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, gitUrl: 'https://github.com/treeseed-ai/cli.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, gitUrl: 'https://github.com/treeseed-ai/core.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, gitUrl: 'https://github.com/treeseed-ai/admin.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, gitUrl: 'https://github.com/treeseed-ai/agent.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, gitUrl: 'https://github.com/treeseed-ai/reviewer.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-engineering.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, gitUrl: 'https://github.com/treeseed-ai/template-research.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging } } - - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, gitUrl: 'https://github.com/treeseed-ai/market.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, repositoryPolicy: { stagingBranch: staging }, metadata: { hostedDeploymentAuthority: external } } - - { key: 'repository:treeseed/skill', project: 'project:treeseed/skill', role: primary, gitUrl: 'https://github.com/treeseed-ai/skill.git', defaultBranch: main } + - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } + - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } + - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'https://github.com/treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'https://github.com/treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'https://github.com/treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/cli', project: 'project:treeseed/cli', role: primary, provider: github, owner: treeseed-ai, name: cli, gitUrl: 'https://github.com/treeseed-ai/cli.git', defaultBranch: main, checkoutPath: packages/cli, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/core', project: 'project:treeseed/core', role: primary, provider: github, owner: treeseed-ai, name: core, gitUrl: 'https://github.com/treeseed-ai/core.git', defaultBranch: main, checkoutPath: packages/core, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/admin', project: 'project:treeseed/admin', role: primary, provider: github, owner: treeseed-ai, name: admin, gitUrl: 'https://github.com/treeseed-ai/admin.git', defaultBranch: main, checkoutPath: packages/admin, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/agent', project: 'project:treeseed/agent', role: primary, provider: github, owner: treeseed-ai, name: agent, gitUrl: 'https://github.com/treeseed-ai/agent.git', defaultBranch: main, checkoutPath: packages/agent, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/reviewer', project: 'project:treeseed/reviewer', role: primary, provider: github, owner: treeseed-ai, name: reviewer, gitUrl: 'https://github.com/treeseed-ai/reviewer.git', defaultBranch: main, checkoutPath: packages/reviewer, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'https://github.com/treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: packages/template-engineering, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'https://github.com/treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: packages/template-research, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'https://github.com/treeseed-ai/market.git', defaultBranch: main, checkoutPath: packages/market, repositoryPolicy: *public_repo, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: packages/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/skill', project: 'project:treeseed/skill', role: primary, provider: github, owner: treeseed-ai, name: skill, gitUrl: 'https://github.com/treeseed-ai/skill.git', defaultBranch: main, checkoutPath: packages/skill, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } + - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/cli-library', project: 'project:treeseed/cli', role: library, provider: github, owner: treeseed-ai, name: cli-library, gitUrl: 'https://github.com/treeseed-ai/cli-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/core-library', project: 'project:treeseed/core', role: library, provider: github, owner: treeseed-ai, name: core-library, gitUrl: 'https://github.com/treeseed-ai/core-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/admin-library', project: 'project:treeseed/admin', role: library, provider: github, owner: treeseed-ai, name: admin-library, gitUrl: 'https://github.com/treeseed-ai/admin-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/agent-library', project: 'project:treeseed/agent', role: library, provider: github, owner: treeseed-ai, name: agent-library, gitUrl: 'https://github.com/treeseed-ai/agent-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/reviewer-library', project: 'project:treeseed/reviewer', role: library, provider: github, owner: treeseed-ai, name: reviewer-library, gitUrl: 'https://github.com/treeseed-ai/reviewer-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/skill-library', project: 'project:treeseed/skill', role: library, provider: github, owner: treeseed-ai, name: skill-library, gitUrl: 'https://github.com/treeseed-ai/skill-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'https://github.com/treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: .fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } +runtime: + # Capacity, identity, enrollment, and credentials are runtime host inputs. They + # must not be captured in this portable repository seed. + capacityProviders: [] From a06f6daf4956aceea226024b103040bf36c1045d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 19:57:07 -0400 Subject: [PATCH 174/501] Compose API rc66 into development generation 180 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index c99efcc0..74d54881 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' } +integration: { id: development, digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index f378793a..8c755caf 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' } +integration: { id: development, digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 5fd37d9e..1fcf0a45 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc214", - "generation": 179, + "generation": 180, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "fce799ae427055957f1d6a95d40dd4c0ea07b930", "tag": "0.1.0-rc.214" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3945e54d284841e6e2a16df778e1c89b2bedc144", "tag": "0.1.0-rc.215" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.65", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/treeseed-api-0.8.0-rc.65.tgz", "sha256": "c624c6d4d6caa00976ddd461968f01275bf125b82a179d46e9770207dfcdde0f" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc65-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/component-release.json", "sha256": "cff96bfc3a470dc040c0439aa91d30502aedbd71c7ab276687c8eff964f6fc32" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.65/compose.yml", "sha256": "5ff2aea5ee05b1c90bcb932ddf5e93f1b9bc2a632ddefd7c9ec933135d33786e" } }] }, + { "componentId": "api", "release": "0.8.0~rc66-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/component-release.json", "sha256": "7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/compose.yml", "sha256": "8837f2c892c8a62d056d0709510b7223f95fd8b07c9d18e3ce09a8835fc451db" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/component-release.json", "sha256": "8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/compose.yml", "sha256": "1d976278bd6fcc777866d7aa0941e5ab1e6127475f5c3925c9bdde1a92d9382a" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5c9b998b..7a9e2c1e 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 release: development-180 components: - - { id: deployment, version: 0.1.0-rc.214, commit: fce799ae427055957f1d6a95d40dd4c0ea07b930, digest: 'sha256:91545a8304d00bbe87d5846d33716577c87c282714da89ceccc223624ba054c7', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.214/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.215, commit: 3945e54d284841e6e2a16df778e1c89b2bedc144, digest: 'sha256:5f5ba0786c6dd0e01536b3a8dcef444233d87b7c2dc5243b2c9e0486291fe151', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.215/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - - { id: api, version: 0.8.0-rc.65, commit: c339820ca746d7bcb71acb9022fd1c58daa83062, digest: 'sha256:cff96bfc3a470dc040c0439aa91d30502aedbd71c7ab276687c8eff964f6fc32', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.65' } + - { id: api, version: 0.8.0-rc.66, commit: d5f6ae710fa57978338f296ff9ef6f5d0b3992ba, digest: 'sha256:7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.66' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.14, commit: c19d6b17f1a01c0e1a22cecb9656915bedde68fb, digest: 'sha256:8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.14' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:694b4c4ddc2280f9681bc79b0d374a861edd01f2853104a6b38b36c772bcc4cd' +digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' From 04b8be2a48dbaef8b2fb499718413cf7ff2112e8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 21:22:38 -0400 Subject: [PATCH 175/501] release: compose TreeDX rc15 into generation 181 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 74d54881..5c8bf6c2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' } +integration: { id: development, digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 8c755caf..a755a290 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' } +integration: { id: development, digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1fcf0a45..95eed18f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc214", - "generation": 180, + "release": "0.1.0~rc216", + "generation": 181, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3945e54d284841e6e2a16df778e1c89b2bedc144", "tag": "0.1.0-rc.215" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "36613508a3ed6bcc64de3aaa381c64514071793e", "tag": "0.1.0-rc.216" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -15,7 +15,7 @@ { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.48", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.48.tgz", "sha256": "56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a" } }, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.14.tgz", "sha256": "ea94f66a9747912ef1c765e8a817524d70a42318f280bc858fcac73068ad0439" } }, + { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], @@ -29,11 +29,11 @@ { "componentId": "api", "release": "0.8.0~rc66-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/component-release.json", "sha256": "7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/compose.yml", "sha256": "8837f2c892c8a62d056d0709510b7223f95fd8b07c9d18e3ce09a8835fc451db" } }] }, { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc14-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/component-release.json", "sha256": "8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.14/compose.yml", "sha256": "1d976278bd6fcc777866d7aa0941e5ab1e6127475f5c3925c9bdde1a92d9382a" } }] }, + { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-01T23:10:00.000Z" + "createdAt": "2026-09-02T01:21:13.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 7a9e2c1e..2a985fde 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-180 +release: development-181 components: - - { id: deployment, version: 0.1.0-rc.215, commit: 3945e54d284841e6e2a16df778e1c89b2bedc144, digest: 'sha256:5f5ba0786c6dd0e01536b3a8dcef444233d87b7c2dc5243b2c9e0486291fe151', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.215/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.216, commit: 36613508a3ed6bcc64de3aaa381c64514071793e, digest: 'sha256:13c4dc8c166a114b10d06cb10343ddcd6d3f03b4b70223606f1ae0bfb9256fcf', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.216/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - { id: api, version: 0.8.0-rc.66, commit: d5f6ae710fa57978338f296ff9ef6f5d0b3992ba, digest: 'sha256:7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.66' } - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - - { id: treedx, version: 0.3.0-rc.14, commit: c19d6b17f1a01c0e1a22cecb9656915bedde68fb, digest: 'sha256:8a64dff617a437b88b3291aa5c2bf24d84ad8b055e780ea7f7f629b1bc947b17', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.14' } + - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:f42104ab9a8c9776ed95c63207b12e79960877b9de46cf87ec2c86fbde7cd110' +digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' From f1298b3fd429fd83437eb2b44c11821a7c67bd80 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 1 Sep 2026 22:11:55 -0400 Subject: [PATCH 176/501] chore: compose Deployment rc218 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 5c8bf6c2..fcca4673 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' } +integration: { id: development, digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index a755a290..9f16967d 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' } +integration: { id: development, digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 95eed18f..fe391d01 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc216", - "generation": 181, + "release": "0.1.0~rc218", + "generation": 182, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "36613508a3ed6bcc64de3aaa381c64514071793e", "tag": "0.1.0-rc.216" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "bc43987609aae46fdade4a2544b8e180839ecab6", "tag": "0.1.0-rc.218" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-02T01:21:13.000Z" + "createdAt": "2026-09-02T02:10:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 2a985fde..29626453 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-181 +release: development-182 components: - - { id: deployment, version: 0.1.0-rc.216, commit: 36613508a3ed6bcc64de3aaa381c64514071793e, digest: 'sha256:13c4dc8c166a114b10d06cb10343ddcd6d3f03b4b70223606f1ae0bfb9256fcf', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.216/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.218, commit: bc43987609aae46fdade4a2544b8e180839ecab6, digest: 'sha256:2bb7c851f634c6c6b3f8051023f8645122445dccac299b6ad98ecfcbdf31358c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.218/exact-head.json' } - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - { id: api, version: 0.8.0-rc.66, commit: d5f6ae710fa57978338f296ff9ef6f5d0b3992ba, digest: 'sha256:7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.66' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:fec22e29845fbbd99f25fd3c64af64910017ceb19d553f88c083bf0da1de1677' +digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' From 5af26d7439a1204884079708076aef57f45396e2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 05:41:31 -0400 Subject: [PATCH 177/501] feat(topology): declare hosted production environments --- README.md | 2 + config/topologies/capacity-providers.yaml | 9 +++ config/topologies/production.yaml | 81 ++++++++++++++++++++--- config/topologies/staging.yaml | 27 ++++++++ docs/hosted-deployment.md | 24 +++++++ treeseed.site.yaml | 2 + 6 files changed, 136 insertions(+), 9 deletions(-) create mode 100644 config/topologies/capacity-providers.yaml create mode 100644 config/topologies/staging.yaml create mode 100644 docs/hosted-deployment.md diff --git a/README.md b/README.md index f6182595..dc8363bc 100644 --- a/README.md +++ b/README.md @@ -32,4 +32,6 @@ One generic Debian bootstrap installs only the manager foundation. `trsd host in Production topology is declared under `config/topologies/` and remains fail-closed. Cloudflare hosts Admin, Railway hosts the control plane, and bare-metal providers run Agent. Market and Market API participate in development worksets but retain independent hosted-deployment authority. +Staging and production use portable templates plus separately generated immutable artifact inputs. See [hosted deployment](docs/hosted-deployment.md) for state isolation, credential custody, planning, and the Ubuntu 26.04 capacity-provider fleet boundary. + Current delivery work and evidence are tracked in [Platform issue #280](https://github.com/treeseed-ai/platform/issues/280). GitHub Issues are status authority and Actions are verification authority. diff --git a/config/topologies/capacity-providers.yaml b/config/topologies/capacity-providers.yaml new file mode 100644 index 00000000..a4dae4c2 --- /dev/null +++ b/config/topologies/capacity-providers.yaml @@ -0,0 +1,9 @@ +schemaVersion: treeseed.capacity-provider-fleet/v1 +id: treeseed-production-capacity +environment: production +count: 3 +host: { operatingSystem: { distribution: ubuntu, release: "26.04" }, architecture: amd64 } +installer: { package: treeseed, profile: capacity-provider } +enrollment: { controlPlaneUrl: installation-input, teamRegistrationCode: prompted, approval: required, identity: generated-locally } +sessions: { authentication: short-lived, renewal: automatic } +placement: { hostIdentities: runtime-only, addresses: runtime-only } diff --git a/config/topologies/production.yaml b/config/topologies/production.yaml index d474c69c..073b74b1 100644 --- a/config/topologies/production.yaml +++ b/config/topologies/production.yaml @@ -1,9 +1,72 @@ -schemaVersion: treeseed.platform-topology/v1 -id: production -mutation: blocked -providers: - admin: { kind: cloudflare, resourceIds: installation-input } - controlPlane: { kind: railway, resourceIds: installation-input } - capacity: { kind: bare-metal, count: installation-input } -requirements: [reviewed-plan, authoritative-readback, drift-noop, rollback, environment-approval] -boundaries: { marketHostedDeployment: external, marketApiHostedDeployment: external } +schemaVersion: treeseed.hosted-topology-template/v1 +id: treeseed-production +deploymentId: treeseed-cloud +stackId: control-plane +environment: production +mutation: approval-required +stateBackend: { connectionRef: cloudflare-state-production } +providerConnections: + cloudflare: { connectionRef: cloudflare-hosting-production } + railway: { connectionRef: railway-hosting-production } +artifactBindings: + admin: { input: admin-pages, kind: archive } + api-proxy: { input: api-proxy-worker, kind: file } + api: { input: control-plane-api-image, kind: oci-image } + operations: { input: operations-runner-image, kind: oci-image } + postgres: { input: postgres-image, kind: oci-image } + treedx: { input: treedx-image, kind: oci-image } +resources: + - id: postgres + provider: railway + kind: postgresql + dependsOn: [] + parameters: { name: { input: postgres-service-name }, artifact: { artifact: postgres }, volume-name: { input: postgres-volume-name }, volume-mount-path: { literal: /var/lib/postgresql/data } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: api + provider: railway + kind: control-plane-api + dependsOn: [postgres] + parameters: { name: { input: api-service-name }, artifact: { artifact: api }, healthcheck-path: { literal: /health }, variable.TREESEED_DATABASE_URL: { resourceOutput: { resourceId: postgres, output: database-url } }, variable.TREESEED_WEB_SERVICE_ID: { literal: operations-runner } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: operations + provider: railway + kind: operations-runner + dependsOn: [api, postgres] + parameters: { name: { input: operations-service-name }, artifact: { artifact: operations }, healthcheck-path: { literal: /health }, variable.TREESEED_DATABASE_URL: { resourceOutput: { resourceId: postgres, output: database-url } }, variable.TREESEED_API_BASE_URL: { resourceOutput: { resourceId: api, output: private-url } } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: treedx + provider: railway + kind: treedx-service + dependsOn: [api] + parameters: { name: { input: treedx-service-name }, artifact: { artifact: treedx }, healthcheck-path: { literal: /health }, variable.TREESEED_API_BASE_URL: { resourceOutput: { resourceId: api, output: private-url } } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: api-proxy + provider: cloudflare + kind: api-proxy + dependsOn: [api] + parameters: { name: { input: api-proxy-worker-name }, artifact: { artifact: api-proxy }, compatibility-date: { literal: 2026-09-01 }, variable.TREESEED_UPSTREAM_URL: { input: api-public-url } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: admin + provider: cloudflare + kind: pages-application + dependsOn: [api-proxy] + parameters: { name: { input: admin-pages-project-name }, artifact: { artifact: admin }, artifact-format: { literal: tar+gzip }, production-branch: { literal: main }, destination-dir: { literal: . } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: api-dns + provider: cloudflare + kind: dns-record + dependsOn: [api-proxy] + parameters: { name: { input: api-dns-name }, type: { literal: CNAME }, content: { input: api-proxy-dns-target }, proxied: { literal: true } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: admin-dns + provider: cloudflare + kind: dns-record + dependsOn: [admin] + parameters: { name: { input: admin-dns-name }, type: { literal: CNAME }, content: { input: admin-pages-dns-target }, proxied: { literal: true } } + adoption: { mode: adopt-or-create, replacement: forbidden } + - id: tls + provider: cloudflare + kind: tls-policy + dependsOn: [api-dns, admin-dns] + parameters: { mode: { literal: strict } } + adoption: { mode: adopt-or-create, replacement: forbidden } diff --git a/config/topologies/staging.yaml b/config/topologies/staging.yaml new file mode 100644 index 00000000..9e367a47 --- /dev/null +++ b/config/topologies/staging.yaml @@ -0,0 +1,27 @@ +schemaVersion: treeseed.hosted-topology-template/v1 +id: treeseed-staging +deploymentId: treeseed-cloud +stackId: control-plane +environment: staging +mutation: approval-required +stateBackend: { connectionRef: cloudflare-state-staging } +providerConnections: + cloudflare: { connectionRef: cloudflare-hosting-staging } + railway: { connectionRef: railway-hosting-staging } +artifactBindings: + admin: { input: admin-pages, kind: archive } + api-proxy: { input: api-proxy-worker, kind: file } + api: { input: control-plane-api-image, kind: oci-image } + operations: { input: operations-runner-image, kind: oci-image } + postgres: { input: postgres-image, kind: oci-image } + treedx: { input: treedx-image, kind: oci-image } +resources: + - { id: postgres, provider: railway, kind: postgresql, dependsOn: [], parameters: { name: { input: postgres-service-name }, artifact: { artifact: postgres }, volume-name: { input: postgres-volume-name }, volume-mount-path: { literal: /var/lib/postgresql/data } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: api, provider: railway, kind: control-plane-api, dependsOn: [postgres], parameters: { name: { input: api-service-name }, artifact: { artifact: api }, healthcheck-path: { literal: /health }, variable.TREESEED_DATABASE_URL: { resourceOutput: { resourceId: postgres, output: database-url } }, variable.TREESEED_WEB_SERVICE_ID: { literal: operations-runner } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: operations, provider: railway, kind: operations-runner, dependsOn: [api, postgres], parameters: { name: { input: operations-service-name }, artifact: { artifact: operations }, healthcheck-path: { literal: /health }, variable.TREESEED_DATABASE_URL: { resourceOutput: { resourceId: postgres, output: database-url } }, variable.TREESEED_API_BASE_URL: { resourceOutput: { resourceId: api, output: private-url } } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: treedx, provider: railway, kind: treedx-service, dependsOn: [api], parameters: { name: { input: treedx-service-name }, artifact: { artifact: treedx }, healthcheck-path: { literal: /health }, variable.TREESEED_API_BASE_URL: { resourceOutput: { resourceId: api, output: private-url } } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: api-proxy, provider: cloudflare, kind: api-proxy, dependsOn: [api], parameters: { name: { input: api-proxy-worker-name }, artifact: { artifact: api-proxy }, compatibility-date: { literal: 2026-09-01 }, variable.TREESEED_UPSTREAM_URL: { input: api-public-url } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: admin, provider: cloudflare, kind: pages-application, dependsOn: [api-proxy], parameters: { name: { input: admin-pages-project-name }, artifact: { artifact: admin }, artifact-format: { literal: tar+gzip }, production-branch: { literal: staging }, destination-dir: { literal: . } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: api-dns, provider: cloudflare, kind: dns-record, dependsOn: [api-proxy], parameters: { name: { input: api-dns-name }, type: { literal: CNAME }, content: { input: api-proxy-dns-target }, proxied: { literal: true } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: admin-dns, provider: cloudflare, kind: dns-record, dependsOn: [admin], parameters: { name: { input: admin-dns-name }, type: { literal: CNAME }, content: { input: admin-pages-dns-target }, proxied: { literal: true } }, adoption: { mode: adopt-or-create, replacement: forbidden } } + - { id: tls, provider: cloudflare, kind: tls-policy, dependsOn: [api-dns, admin-dns], parameters: { mode: { literal: strict } }, adoption: { mode: adopt-or-create, replacement: forbidden } } diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md new file mode 100644 index 00000000..2a32625f --- /dev/null +++ b/docs/hosted-deployment.md @@ -0,0 +1,24 @@ +# Hosted deployment + +Platform declares portable staging and production topology templates. Deployment owns the pinned OpenTofu modules and Cloudflare/Railway provider behavior; the API authorizes plans and mutations; `trsd` is the operator surface. Platform contains no provider account IDs, team IDs, credentials, host identities, or state. + +OpenTofu state is isolated by team, deployment, environment, and stack at: + +```text +teams//opentofu/v1/deployments//environments//stacks//terraform.tfstate +``` + +The R2 bucket and endpoint come from the active team's Cloudflare storage connection. State access uses a short-lived, team-scoped storage session and state encryption key resolved through the team's OpenBao service credential vault. Provider credentials are resolved only by the operations runner and never enter Platform Git, API records, plans, receipts, logs, or evidence. + +## Plan an environment + +Release automation produces an ignored `treeseed.hosted-topology-artifacts/v1` document containing exactly the Admin Pages archive, API-proxy Worker file, and immutable Railway OCI image identities required by the selected template. From a clean Platform commit: + +```text +trsd platform topology plan config/topologies/staging.yaml --artifacts .treeseed/topology-artifacts/staging.json --json +trsd platform topology plan config/topologies/production.yaml --artifacts .treeseed/topology-artifacts/production.json --json +``` + +The CLI binds the active authenticated team and exact current Platform commit. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, unavailable service connections, provider drift, and cross-team state custody all fail closed. Apply requires the exact reviewed plan, an environment approval bound to its digest, and `--yes`. Production remains blocked at the Platform promotion boundary until the full stable release gates pass. + +Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. Railway owns PostgreSQL, the control-plane API, operations runner, and TreeDX service. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. diff --git a/treeseed.site.yaml b/treeseed.site.yaml index 32be4f7e..24cbb523 100644 --- a/treeseed.site.yaml +++ b/treeseed.site.yaml @@ -9,4 +9,6 @@ profiles: { path: profiles } integrations: { development: config/integrations/development.yaml, stablePromotion: config/promotions/stable.yaml } skill: { lock: config/skills/treeseed.lock.yaml } runtime: { mode: none, identity: installation-input } +staging: { mutation: approval-required, topology: config/topologies/staging.yaml } production: { mutation: blocked, topology: config/topologies/production.yaml } +capacityProviders: { topology: config/topologies/capacity-providers.yaml } From 0f2ce6f7f0ee1b5e2aeda0cbfb7740f63f68ba61 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 19:22:27 -0400 Subject: [PATCH 178/501] release: compose hosted generation 183 --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 18 +++++++++--------- config/integrations/development.yaml | 14 +++++++------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index fd71b24b..df4a2ed8 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.48 - with: { version: 0.13.0-rc.48 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.51 + with: { version: 0.13.0-rc.51 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index fcca4673..8a165ef5 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' } +integration: { id: development, digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 9f16967d..d66ea46c 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' } +integration: { id: development, digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index fe391d01..8aefb8fc 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc218", - "generation": 182, + "release": "0.1.0~rc226", + "generation": 183, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "bc43987609aae46fdade4a2544b8e180839ecab6", "tag": "0.1.0-rc.218" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "6f0380b4f69088e99ec6a51d0c9aceebdae885f0", "tag": "0.1.0-rc.226" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.70", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.70.tgz", "sha256": "ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.22", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.22.tgz", "sha256": "e464874a0cd1bca412d8e6f43f3903f7cf94c512cedbb0e6d8315a58b384ce08" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.23", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.23.tgz", "sha256": "bee16bb11af25310a7c864c06938b2f62a1ae9ca33d264f20db2c1f4c532b155" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.48", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.48.tgz", "sha256": "56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.51.tgz", "sha256": "66ab5654bb609e77de219f7e64e72818ca0b10fb31c37ec3f7167bb0b21ee9b2" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc66-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/component-release.json", "sha256": "7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/compose.yml", "sha256": "8837f2c892c8a62d056d0709510b7223f95fd8b07c9d18e3ce09a8835fc451db" } }] }, - { "componentId": "admin", "release": "0.12.59~rc22-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/component-release.json", "sha256": "ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.22/compose.yml", "sha256": "f999f6859a67715087576778671304a258663a5396dd8ecc9b01880735e96bbf" } }] }, + { "componentId": "api", "release": "0.8.0~rc70-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.70/component-release.json", "sha256": "4f6c9d70caedc3d91d51e2b9613be9900a7215594ce21e2c379a83b39981ee79" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.70/compose.yml", "sha256": "1935434e09eab719510ca8dd9018c9ec1e9ca6ae05ffb9728f1b73748aa314db" } }] }, + { "componentId": "admin", "release": "0.12.59~rc23-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/component-release.json", "sha256": "4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/compose.yml", "sha256": "078257fc66070339b47c2df1ae38cdd3d6d5f9602df3f5ea326d64cff7fd8459" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-02T02:10:00.000Z" + "createdAt": "2026-09-02T23:20:53.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 29626453..6b48d729 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-182 +release: development-183 components: - - { id: deployment, version: 0.1.0-rc.218, commit: bc43987609aae46fdade4a2544b8e180839ecab6, digest: 'sha256:2bb7c851f634c6c6b3f8051023f8645122445dccac299b6ad98ecfcbdf31358c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.218/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.70, commit: 1113ca7717e3b49db8d5bfbee4723192b524fde3, digest: 'sha256:ac55909c589ae601c0791136e4a368d61eea107daec190090dee2f89ba3b7de4', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.70' } - - { id: cli, version: 0.13.0-rc.48, commit: 45ecfae5811ea6be6f9ac7649ca485c48d791c7a, digest: 'sha256:56775d4d7b02bb7584a45bd68f6597648904e83219210325763a85d575f2192a', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.48' } - - { id: api, version: 0.8.0-rc.66, commit: d5f6ae710fa57978338f296ff9ef6f5d0b3992ba, digest: 'sha256:7835a33fd017531ab9aaf7ae01eda331fea463613ce7fd4cd680c9d880490047', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.66' } - - { id: admin, version: 0.12.59-rc.22, commit: 3d410539288163134852d1c64771f590258bbd72, digest: 'sha256:ff6270542357bc27dd3b744840e0c03368c80bb4e757e96665c92596db3431e9', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.22' } + - { id: deployment, version: 0.1.0-rc.226, commit: 6f0380b4f69088e99ec6a51d0c9aceebdae885f0, digest: 'sha256:34cc8838799a4da4f9fa19fd29c72ef894f458efce47d1727a31f0e30c39b1bb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.226/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } + - { id: cli, version: 0.13.0-rc.51, commit: 73512b59c5a955df1b555905855f18d418b5f3fa, digest: 'sha256:66ab5654bb609e77de219f7e64e72818ca0b10fb31c37ec3f7167bb0b21ee9b2', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.51' } + - { id: api, version: 0.8.0-rc.70, commit: b44c45e85860ab1a7b184f3828d4ff21bda19e16, digest: 'sha256:4f6c9d70caedc3d91d51e2b9613be9900a7215594ce21e2c379a83b39981ee79', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.70' } + - { id: admin, version: 0.12.59-rc.23, commit: ca72f89f39fd2a6472a869d09886adc8467dd804, digest: 'sha256:4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.23' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:2aea8136df98d18d19dc7fb41ab991c88954f9f179c54178e945358c2e410c9d' +digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' From f4db6a4c23ab3a4ab6212d817791631ff0eaa746 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 19:33:17 -0400 Subject: [PATCH 179/501] fix(composition): select self-contained CLI rc53 --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 2 +- config/integrations/development.yaml | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index df4a2ed8..9e71b34d 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.51 - with: { version: 0.13.0-rc.51 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.53 + with: { version: 0.13.0-rc.53 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 8a165ef5..e3f96bbd 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' } +integration: { id: development, digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index d66ea46c..aa5e2634 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' } +integration: { id: development, digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8aefb8fc..7b713634 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.23", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.23.tgz", "sha256": "bee16bb11af25310a7c864c06938b2f62a1ae9ca33d264f20db2c1f4c532b155" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.51", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.51.tgz", "sha256": "66ab5654bb609e77de219f7e64e72818ca0b10fb31c37ec3f7167bb0b21ee9b2" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.53.tgz", "sha256": "2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6b48d729..2e04345c 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -3,7 +3,7 @@ release: development-183 components: - { id: deployment, version: 0.1.0-rc.226, commit: 6f0380b4f69088e99ec6a51d0c9aceebdae885f0, digest: 'sha256:34cc8838799a4da4f9fa19fd29c72ef894f458efce47d1727a31f0e30c39b1bb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.226/exact-head.json' } - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } - - { id: cli, version: 0.13.0-rc.51, commit: 73512b59c5a955df1b555905855f18d418b5f3fa, digest: 'sha256:66ab5654bb609e77de219f7e64e72818ca0b10fb31c37ec3f7167bb0b21ee9b2', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.51' } + - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - { id: api, version: 0.8.0-rc.70, commit: b44c45e85860ab1a7b184f3828d4ff21bda19e16, digest: 'sha256:4f6c9d70caedc3d91d51e2b9613be9900a7215594ce21e2c379a83b39981ee79', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.70' } - { id: admin, version: 0.12.59-rc.23, commit: ca72f89f39fd2a6472a869d09886adc8467dd804, digest: 'sha256:4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.23' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:17984518f18df222f8528f657d907835defe7c50121cf3fd6ad1828075e6a90c' +digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' From 5ef89de4ec0992e2697a13c89f7f2c2f303a9c6e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 20:16:51 -0400 Subject: [PATCH 180/501] release: compose hosted generation 184 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index e3f96bbd..e307be66 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' } +integration: { id: development, digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index aa5e2634..5bc806f5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' } +integration: { id: development, digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7b713634..1ce3037e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc226", - "generation": 183, + "release": "0.1.0~rc227", + "generation": 184, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d1cccc38bb6e88d88483998405863412125f0422" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "6f0380b4f69088e99ec6a51d0c9aceebdae885f0", "tag": "0.1.0-rc.226" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "561cb330c13ab8f8f0f858f29d4a91a3f6e5ada8" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "2915d6bcdd7606a888e3f2c9932c0d8e944beb7e", "tag": "0.1.0-rc.227" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc70-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.70/component-release.json", "sha256": "4f6c9d70caedc3d91d51e2b9613be9900a7215594ce21e2c379a83b39981ee79" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.70/compose.yml", "sha256": "1935434e09eab719510ca8dd9018c9ec1e9ca6ae05ffb9728f1b73748aa314db" } }] }, + { "componentId": "api", "release": "0.8.0~rc71-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.71/component-release.json", "sha256": "2512636c22abbe0ac00e964c4afb32edc994be526b6b72cc9d5fe07c4c05dcf6" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.71/compose.yml", "sha256": "0d7b1fe3aeb6482fd0229b1e59a909b3604b7cef45d05d569c4a9297c4f6854f" } }] }, { "componentId": "admin", "release": "0.12.59~rc23-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/component-release.json", "sha256": "4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/compose.yml", "sha256": "078257fc66070339b47c2df1ae38cdd3d6d5f9602df3f5ea326d64cff7fd8459" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-02T23:20:53.000Z" + "createdAt": "2026-09-03T00:15:30.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 2e04345c..33470b8a 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-183 +release: development-184 components: - - { id: deployment, version: 0.1.0-rc.226, commit: 6f0380b4f69088e99ec6a51d0c9aceebdae885f0, digest: 'sha256:34cc8838799a4da4f9fa19fd29c72ef894f458efce47d1727a31f0e30c39b1bb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.226/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.227, commit: 2915d6bcdd7606a888e3f2c9932c0d8e944beb7e, digest: 'sha256:acdb01f9d4cd12f0c3488e7c2ed223feb36fd72195024e571df93a38691c91fb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.227/exact-head.json' } - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - - { id: api, version: 0.8.0-rc.70, commit: b44c45e85860ab1a7b184f3828d4ff21bda19e16, digest: 'sha256:4f6c9d70caedc3d91d51e2b9613be9900a7215594ce21e2c379a83b39981ee79', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.70' } + - { id: api, version: 0.8.0-rc.71, commit: 5c9f2ac82e36c35c094bb4b7e759908ee2e0e222, digest: 'sha256:2512636c22abbe0ac00e964c4afb32edc994be526b6b72cc9d5fe07c4c05dcf6', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.71' } - { id: admin, version: 0.12.59-rc.23, commit: ca72f89f39fd2a6472a869d09886adc8467dd804, digest: 'sha256:4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.23' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:ef52eee79451fe880c38bab16cd177e68a15e151af6577361ca5bdef8c52584a' +digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' From cd998af883d35b998d8f6d3273b8ada93b4bf7fa Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 20:32:54 -0400 Subject: [PATCH 181/501] Compose development generation 185 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index e307be66..86e52fdc 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' } +integration: { id: development, digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 5bc806f5..148db7f0 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' } +integration: { id: development, digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1ce3037e..f5cd2679 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc227", - "generation": 184, + "release": "0.1.0~rc228", + "generation": 185, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "561cb330c13ab8f8f0f858f29d4a91a3f6e5ada8" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "2915d6bcdd7606a888e3f2c9932c0d8e944beb7e", "tag": "0.1.0-rc.227" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3f325659f358ab0395a9f25cb29c77ead5d9cd52" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "be6f28314fb1f8db8924357a0b54be8b3205fed3", "tag": "0.1.0-rc.228" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T00:15:30.000Z" + "createdAt": "2026-09-03T00:30:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 33470b8a..fdde4e74 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-184 +release: development-185 components: - - { id: deployment, version: 0.1.0-rc.227, commit: 2915d6bcdd7606a888e3f2c9932c0d8e944beb7e, digest: 'sha256:acdb01f9d4cd12f0c3488e7c2ed223feb36fd72195024e571df93a38691c91fb', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.227/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.228, commit: be6f28314fb1f8db8924357a0b54be8b3205fed3, digest: 'sha256:0fddf20eaf713daf57b1b40c9eaea2fd4a795f638a3874c2fa6c6564a608f67c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.228/exact-head.json' } - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - { id: api, version: 0.8.0-rc.71, commit: 5c9f2ac82e36c35c094bb4b7e759908ee2e0e222, digest: 'sha256:2512636c22abbe0ac00e964c4afb32edc994be526b6b72cc9d5fe07c4c05dcf6', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.71' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:b479590e307750dcf88aefa43bf69303bad33465b680ba39e299f30b124ffae4' +digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' From d4ec4f7fb85f1f1ea330a4b71f9e694e90d1fe83 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 20:58:27 -0400 Subject: [PATCH 182/501] Compose API rc72 in generation 186 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 86e52fdc..dfd12ae5 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' } +integration: { id: development, digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 148db7f0..2c68ec7e 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' } +integration: { id: development, digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f5cd2679..09935eb1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc228", - "generation": 185, + "generation": 186, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3f325659f358ab0395a9f25cb29c77ead5d9cd52" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "728ab346d1cf53c840bcc65f1bcc97935dbacd6c" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "be6f28314fb1f8db8924357a0b54be8b3205fed3", "tag": "0.1.0-rc.228" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc71-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.71/component-release.json", "sha256": "2512636c22abbe0ac00e964c4afb32edc994be526b6b72cc9d5fe07c4c05dcf6" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.71/compose.yml", "sha256": "0d7b1fe3aeb6482fd0229b1e59a909b3604b7cef45d05d569c4a9297c4f6854f" } }] }, + { "componentId": "api", "release": "0.8.0~rc72-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/component-release.json", "sha256": "f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/compose.yml", "sha256": "0be96a645c3b6a798d2b9b6fbae816aac797cfc7162bf957e73c72bb6b274950" } }] }, { "componentId": "admin", "release": "0.12.59~rc23-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/component-release.json", "sha256": "4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/compose.yml", "sha256": "078257fc66070339b47c2df1ae38cdd3d6d5f9602df3f5ea326d64cff7fd8459" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T00:30:00.000Z" + "createdAt": "2026-09-03T00:57:23.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index fdde4e74..eb0e6deb 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-185 +release: development-186 components: - { id: deployment, version: 0.1.0-rc.228, commit: be6f28314fb1f8db8924357a0b54be8b3205fed3, digest: 'sha256:0fddf20eaf713daf57b1b40c9eaea2fd4a795f638a3874c2fa6c6564a608f67c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.228/exact-head.json' } - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - - { id: api, version: 0.8.0-rc.71, commit: 5c9f2ac82e36c35c094bb4b7e759908ee2e0e222, digest: 'sha256:2512636c22abbe0ac00e964c4afb32edc994be526b6b72cc9d5fe07c4c05dcf6', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.71' } + - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } - { id: admin, version: 0.12.59-rc.23, commit: ca72f89f39fd2a6472a869d09886adc8467dd804, digest: 'sha256:4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.23' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:9be07606c98df21d0802c7f5bb829e9d9ad0102f3eb678109867d352691ca929' +digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' From 4742fb053f32980e4cd3ce789c47400ea96f7fa2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 21:08:30 -0400 Subject: [PATCH 183/501] Compose development generation 187 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index dfd12ae5..87c20a07 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' } +integration: { id: development, digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2c68ec7e..b243aef8 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' } +integration: { id: development, digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 09935eb1..e2a8e34c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc228", - "generation": 186, + "release": "0.1.0~rc229", + "generation": 187, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "728ab346d1cf53c840bcc65f1bcc97935dbacd6c" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "be6f28314fb1f8db8924357a0b54be8b3205fed3", "tag": "0.1.0-rc.228" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "fb8a5464000fa66590e8d0b721a99269cd59ac1e" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "b18252cb221fa91c20e689fd4bcb17cea54dffbb", "tag": "0.1.0-rc.229" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T00:57:23.000Z" + "createdAt": "2026-09-03T01:07:43.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index eb0e6deb..de7c86b1 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-186 +release: development-187 components: - - { id: deployment, version: 0.1.0-rc.228, commit: be6f28314fb1f8db8924357a0b54be8b3205fed3, digest: 'sha256:0fddf20eaf713daf57b1b40c9eaea2fd4a795f638a3874c2fa6c6564a608f67c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.228/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.229, commit: b18252cb221fa91c20e689fd4bcb17cea54dffbb, digest: 'sha256:c59d70f12133f9df3eb6cb98b3407b1b078b4df291ce5b886108018de00afbfc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.229/exact-head.json' } - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4bb27bde531e11026a198fb1ec6ed70604769dc52e443300a7ca5ce81289b25e' +digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' From 3bb2913ea9b963f9d5974c2f9b2db4f04304e711 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 21:10:55 -0400 Subject: [PATCH 184/501] Document portable service connection references --- docs/hosted-deployment.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index 2a32625f..b5c48b2b 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -10,6 +10,8 @@ teams//opentofu/v1/deployments//environments/ The R2 bucket and endpoint come from the active team's Cloudflare storage connection. State access uses a short-lived, team-scoped storage session and state encryption key resolved through the team's OpenBao service credential vault. Provider credentials are resolved only by the operations runner and never enter Platform Git, API records, plans, receipts, logs, or evidence. +Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection name** to that exact value (for example, `cloudflare-hosting-staging`); the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. + ## Plan an environment Release automation produces an ignored `treeseed.hosted-topology-artifacts/v1` document containing exactly the Admin Pages archive, API-proxy Worker file, and immutable Railway OCI image identities required by the selected template. From a clean Platform commit: From 2df20f9a18c162a1ab07157f9a55625dbaaaf601 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 21:45:40 -0400 Subject: [PATCH 185/501] Compose development generation 188 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 87c20a07..4fc4ebfb 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' } +integration: { id: development, digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index b243aef8..59ad7bb0 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' } +integration: { id: development, digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e2a8e34c..7e6d4b48 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc229", - "generation": 187, + "generation": 188, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "fb8a5464000fa66590e8d0b721a99269cd59ac1e" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "300469cf747055088234aabbe46c718b4d212800" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "b18252cb221fa91c20e689fd4bcb17cea54dffbb", "tag": "0.1.0-rc.229" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.80", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.80.tgz", "sha256": "d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.23", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.23.tgz", "sha256": "bee16bb11af25310a7c864c06938b2f62a1ae9ca33d264f20db2c1f4c532b155" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.24.tgz", "sha256": "bbeea4e35369d1ffe459b858f75dd2e26639e41202a5e9a715076292e4ff8ad4" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.53.tgz", "sha256": "2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc72-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/component-release.json", "sha256": "f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/compose.yml", "sha256": "0be96a645c3b6a798d2b9b6fbae816aac797cfc7162bf957e73c72bb6b274950" } }] }, - { "componentId": "admin", "release": "0.12.59~rc23-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/component-release.json", "sha256": "4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.23/compose.yml", "sha256": "078257fc66070339b47c2df1ae38cdd3d6d5f9602df3f5ea326d64cff7fd8459" } }] }, + { "componentId": "admin", "release": "0.12.59~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/component-release.json", "sha256": "ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/compose.yml", "sha256": "dcaabed47acd2782c8d5b6249c592e837cf6bd6273dd8065eafc3acadc375a1c" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T01:07:43.000Z" + "createdAt": "2026-09-03T01:44:58.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index de7c86b1..2c31a916 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-187 +release: development-188 components: - { id: deployment, version: 0.1.0-rc.229, commit: b18252cb221fa91c20e689fd4bcb17cea54dffbb, digest: 'sha256:c59d70f12133f9df3eb6cb98b3407b1b078b4df291ce5b886108018de00afbfc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.229/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.80, commit: bbc56dfdf5eb9a3ab4de642012256316b932782e, digest: 'sha256:d700a157a330ef24a400164e28ad2de936e7b67b74261dbf4e5143251953dfe1', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.80' } + - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } - - { id: admin, version: 0.12.59-rc.23, commit: ca72f89f39fd2a6472a869d09886adc8467dd804, digest: 'sha256:4e44bde66be7c60b8537ab2f8df9ae3aeb810bbb07eb65f6170371eeafcf3383', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.23' } + - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:7d1fd42a54eaa5f5e8abb7c3d3c3cdc2a7935fcf2db6f591cf9777fd4b022c6e' +digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' From bd9fb8c33e8dd6e8dbf905f8bc2ed92a30377b7f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 22:07:54 -0400 Subject: [PATCH 186/501] Compose development generation 189 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 4fc4ebfb..05408722 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' } +integration: { id: development, digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 59ad7bb0..56bbd8c2 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' } +integration: { id: development, digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7e6d4b48..482b850e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc229", - "generation": 188, + "release": "0.1.0~rc230", + "generation": 189, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "300469cf747055088234aabbe46c718b4d212800" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "b18252cb221fa91c20e689fd4bcb17cea54dffbb", "tag": "0.1.0-rc.229" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e1109db307a503c7fc77fd4e75bf5d980df69df5" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b31dc3fada9aff46779bbdb776b27f73ab718e9", "tag": "0.1.0-rc.230" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T01:44:58.000Z" + "createdAt": "2026-09-03T02:07:16.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 2c31a916..d144ef66 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-188 +release: development-189 components: - - { id: deployment, version: 0.1.0-rc.229, commit: b18252cb221fa91c20e689fd4bcb17cea54dffbb, digest: 'sha256:c59d70f12133f9df3eb6cb98b3407b1b078b4df291ce5b886108018de00afbfc', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.229/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.230, commit: 4b31dc3fada9aff46779bbdb776b27f73ab718e9, digest: 'sha256:0566264e8578293d1b6b57fa02493963c252fd262283b741130c925547ba569c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.230/exact-head.json' } - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:759af5c249a55515e11f2f6414c649ab05832dfc47d3fcc3a58977f94e888d12' +digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' From 316a5fad733d4df2970153854c0223bd6e0b3eb5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 22:14:19 -0400 Subject: [PATCH 187/501] docs: clarify hosted connection custody --- docs/hosted-deployment.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index b5c48b2b..29861ec6 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -10,7 +10,15 @@ teams//opentofu/v1/deployments//environments/ The R2 bucket and endpoint come from the active team's Cloudflare storage connection. State access uses a short-lived, team-scoped storage session and state encryption key resolved through the team's OpenBao service credential vault. Provider credentials are resolved only by the operations runner and never enter Platform Git, API records, plans, receipts, logs, or evidence. -Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection name** to that exact value (for example, `cloudflare-hosting-staging`); the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. +Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection reference** to that exact value; the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. + +The staging topology requires these active, team-scoped connections: + +- `cloudflare-hosting-staging` for Pages, Workers, DNS, and TLS. +- `cloudflare-state-staging` for the R2 state bucket and endpoint, with the state-encryption key reference held by the service credential vault. +- `railway-hosting-staging` for the Railway workspace and staging project/environment. + +Account, zone, workspace, project, environment, bucket, endpoint, and key references are connection metadata supplied at installation time. Credential values remain vault-backed and must not be committed to this repository. ## Plan an environment From afd4c292cc181f05ad04974c2550d0d0168f56ff Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 22:30:03 -0400 Subject: [PATCH 188/501] Compose development generation 190 --- .github/workflows/verify.yml | 4 ++-- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 9e71b34d..ffc5c061 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.53 - with: { version: 0.13.0-rc.53 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.54 + with: { version: 0.13.0-rc.54 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 05408722..507dc4aa 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' } +integration: { id: development, digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 56bbd8c2..1c91f606 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' } +integration: { id: development, digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 482b850e..461686ce 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc230", - "generation": 189, + "generation": 190, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e1109db307a503c7fc77fd4e75bf5d980df69df5" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "5e6bb099afea00efbe9d98ad21124e1387b965e8" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b31dc3fada9aff46779bbdb776b27f73ab718e9", "tag": "0.1.0-rc.230" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, @@ -14,7 +14,7 @@ { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.24.tgz", "sha256": "bbeea4e35369d1ffe459b858f75dd2e26639e41202a5e9a715076292e4ff8ad4" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.53", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.53.tgz", "sha256": "2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.54", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.54.tgz", "sha256": "3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T02:07:16.000Z" + "createdAt": "2026-09-03T02:29:14.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index d144ef66..7442227d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-189 +release: development-190 components: - { id: deployment, version: 0.1.0-rc.230, commit: 4b31dc3fada9aff46779bbdb776b27f73ab718e9, digest: 'sha256:0566264e8578293d1b6b57fa02493963c252fd262283b741130c925547ba569c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.230/exact-head.json' } - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - - { id: cli, version: 0.13.0-rc.53, commit: f9502535b63f57489dd7078496cd5655ff19c67e, digest: 'sha256:2ded70ccee685700a25e30a53b030630460a25321a00a778cabdf4d2aa2f257f', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.53' } + - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:e2de7e332bbe93990dbc182b6a37d5d303036c42d763ec0fd120af8d7a6ab549' +digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' From 99a85734fcee1929023471ab392e34acf871ea0b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 22:51:05 -0400 Subject: [PATCH 189/501] Compose development generation 191 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 507dc4aa..a3cd478e 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' } +integration: { id: development, digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 1c91f606..0e25a669 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' } +integration: { id: development, digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 461686ce..ae0dcf93 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc230", - "generation": 190, + "release": "0.1.0~rc231", + "generation": 191, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "5e6bb099afea00efbe9d98ad21124e1387b965e8" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4b31dc3fada9aff46779bbdb776b27f73ab718e9", "tag": "0.1.0-rc.230" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3632e26bb39cc5ddfbbef3f4569b11b45ed5aecf" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "c1cefb166cb5aaa190ec8c8d93222655165c7658", "tag": "0.1.0-rc.231" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T02:29:14.000Z" + "createdAt": "2026-09-03T02:50:20.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 7442227d..a475bb9c 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-190 +release: development-191 components: - - { id: deployment, version: 0.1.0-rc.230, commit: 4b31dc3fada9aff46779bbdb776b27f73ab718e9, digest: 'sha256:0566264e8578293d1b6b57fa02493963c252fd262283b741130c925547ba569c', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.230/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.231, commit: c1cefb166cb5aaa190ec8c8d93222655165c7658, digest: 'sha256:ec0fd6bceaef4b32f930de7622364edc3c3439e7cc57d986c4bc30be7b04dcd0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.231/exact-head.json' } - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:0cd51f1c2df39ae702b004a35438e8a28c506d457949adc9346f38b668d5f66d' +digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' From 87567ad9ce98a8180a3d3fe5e8f3369715990d8a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 23:14:37 -0400 Subject: [PATCH 190/501] Compose development generation 192 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index a3cd478e..ca671eff 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' } +integration: { id: development, digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 0e25a669..546497b8 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' } +integration: { id: development, digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ae0dcf93..e5acc11c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc231", - "generation": 191, + "generation": 192, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3632e26bb39cc5ddfbbef3f4569b11b45ed5aecf" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "ec12b977750121123399699a0201c471fc902ceb" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "c1cefb166cb5aaa190ec8c8d93222655165c7658", "tag": "0.1.0-rc.231" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc72-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/component-release.json", "sha256": "f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.72/compose.yml", "sha256": "0be96a645c3b6a798d2b9b6fbae816aac797cfc7162bf957e73c72bb6b274950" } }] }, + { "componentId": "api", "release": "0.8.0~rc73-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.73/component-release.json", "sha256": "d2b37b26f0ea93ad69a4294de45b5e38b2c984cb5c1d1efb0aabecbff8b991f0" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.73/compose.yml", "sha256": "772e04a37f2cfb091fc35d366a13724bbe9cbca71398f7bab945376a9356311f" } }] }, { "componentId": "admin", "release": "0.12.59~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/component-release.json", "sha256": "ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/compose.yml", "sha256": "dcaabed47acd2782c8d5b6249c592e837cf6bd6273dd8065eafc3acadc375a1c" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T02:50:20.000Z" + "createdAt": "2026-09-03T03:13:37.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index a475bb9c..cc0b1aac 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-191 +release: development-192 components: - { id: deployment, version: 0.1.0-rc.231, commit: c1cefb166cb5aaa190ec8c8d93222655165c7658, digest: 'sha256:ec0fd6bceaef4b32f930de7622364edc3c3439e7cc57d986c4bc30be7b04dcd0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.231/exact-head.json' } - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - - { id: api, version: 0.8.0-rc.72, commit: bb1b27125a91e43ab320025fe8258eecf4a07a8a, digest: 'sha256:f837a66a6f4b7eea4566dd6fdb7118a097100b7586cd7556519aaa6067ae1a23', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.72' } + - { id: api, version: 0.8.0-rc.73, commit: f8cbc64031e392ffa05f5c7041ee44ef7dae9bc0, digest: 'sha256:d2b37b26f0ea93ad69a4294de45b5e38b2c984cb5c1d1efb0aabecbff8b991f0', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.73' } - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:7850e6e487824ac5429b1aaa0bf9ec1efc14fa0aebd42570c4782de32fd4604b' +digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' From 6b380e450adf7d89ae62dd50c6d6853432916f0a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 2 Sep 2026 23:36:01 -0400 Subject: [PATCH 191/501] Compose development generation 193 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ca671eff..1744013b 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' } +integration: { id: development, digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 546497b8..886e07f5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' } +integration: { id: development, digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e5acc11c..bbdc149c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc231", - "generation": 192, + "release": "0.1.0~rc232", + "generation": 193, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "ec12b977750121123399699a0201c471fc902ceb" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "c1cefb166cb5aaa190ec8c8d93222655165c7658", "tag": "0.1.0-rc.231" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "931d1e30d4f7441dce2a11263b42d45b8bcc0d43" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "3684896f3aca09db2999d96d19b86af4063f7f71", "tag": "0.1.0-rc.232" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T03:13:37.000Z" + "createdAt": "2026-09-03T03:35:17.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index cc0b1aac..0a6657c6 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-192 +release: development-193 components: - - { id: deployment, version: 0.1.0-rc.231, commit: c1cefb166cb5aaa190ec8c8d93222655165c7658, digest: 'sha256:ec0fd6bceaef4b32f930de7622364edc3c3439e7cc57d986c4bc30be7b04dcd0', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.231/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.232, commit: 3684896f3aca09db2999d96d19b86af4063f7f71, digest: 'sha256:08ac296344822e6a4d362107ddc86fa302a8b8cd5ed5b9e9cfc23dd2c85dad05', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.232/exact-head.json' } - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.73, commit: f8cbc64031e392ffa05f5c7041ee44ef7dae9bc0, digest: 'sha256:d2b37b26f0ea93ad69a4294de45b5e38b2c984cb5c1d1efb0aabecbff8b991f0', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.73' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:f12b1192af96132668c5c62ad33df95cb84c492d9bd07cc81985f4c9823f37d0' +digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' From 097c1c2280592768348144aa4a7d2a430744ef3a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 00:09:21 -0400 Subject: [PATCH 192/501] Compose development generation 194 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 1744013b..837fa753 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' } +integration: { id: development, digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 886e07f5..6fd02e85 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' } +integration: { id: development, digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index bbdc149c..3d830f87 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc232", - "generation": 193, + "generation": 194, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "931d1e30d4f7441dce2a11263b42d45b8bcc0d43" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "841fd242ce8c8f03fae7d0a1e5833ae5cd2cd65e" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "3684896f3aca09db2999d96d19b86af4063f7f71", "tag": "0.1.0-rc.232" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.81", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.81.tgz", "sha256": "de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.82", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.82.tgz", "sha256": "0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc73-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.73/component-release.json", "sha256": "d2b37b26f0ea93ad69a4294de45b5e38b2c984cb5c1d1efb0aabecbff8b991f0" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.73/compose.yml", "sha256": "772e04a37f2cfb091fc35d366a13724bbe9cbca71398f7bab945376a9356311f" } }] }, + { "componentId": "api", "release": "0.8.0~rc74-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/component-release.json", "sha256": "ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/compose.yml", "sha256": "1d9634ac4318f1a763869da7f9c3e1f4aa81a316d6eb12f5749d0141de280c02" } }] }, { "componentId": "admin", "release": "0.12.59~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/component-release.json", "sha256": "ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/compose.yml", "sha256": "dcaabed47acd2782c8d5b6249c592e837cf6bd6273dd8065eafc3acadc375a1c" } }] }, { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T03:35:17.000Z" + "createdAt": "2026-09-03T04:08:19.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 0a6657c6..7777ea3b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-193 +release: development-194 components: - { id: deployment, version: 0.1.0-rc.232, commit: 3684896f3aca09db2999d96d19b86af4063f7f71, digest: 'sha256:08ac296344822e6a4d362107ddc86fa302a8b8cd5ed5b9e9cfc23dd2c85dad05', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.232/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.81, commit: dbe24bc3aaf492c44243ee1030684944f32c9270, digest: 'sha256:de25217aad428353b89656cab77cb77e036b4dc72ddc05cc103d013aafbf8755', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.81' } + - { id: sdk, version: 0.13.0-rc.82, commit: b07c37d0f9945a71546ce72596a32ab1919bb252, digest: 'sha256:0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.82' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - - { id: api, version: 0.8.0-rc.73, commit: f8cbc64031e392ffa05f5c7041ee44ef7dae9bc0, digest: 'sha256:d2b37b26f0ea93ad69a4294de45b5e38b2c984cb5c1d1efb0aabecbff8b991f0', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.73' } + - { id: api, version: 0.8.0-rc.74, commit: 541ad3a7baa439db4e94b8d6a4dc6fc53531b74a, digest: 'sha256:ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.74' } - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:3414072b1821055c3d57c86d1c034b5eeb7a0c1f283e1564470ee101ff6aa6e0' +digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' From f25504cf13c46c769e9a6a5bf071a24da3c46986 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 00:29:50 -0400 Subject: [PATCH 193/501] Compose development generation 195 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 837fa753..34b6d3d0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' } +integration: { id: development, digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 6fd02e85..b2d8fa95 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' } +integration: { id: development, digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 3d830f87..0c124e25 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc232", - "generation": 194, + "release": "0.1.0~rc233", + "generation": 195, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "841fd242ce8c8f03fae7d0a1e5833ae5cd2cd65e" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "3684896f3aca09db2999d96d19b86af4063f7f71", "tag": "0.1.0-rc.232" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "f7b8ae5d8444c412ad06db43611e479971238ba1" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a26158621401624ad535a5accfc8ba2a2a3c523c", "tag": "0.1.0-rc.233" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.82", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.82.tgz", "sha256": "0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T04:08:19.000Z" + "createdAt": "2026-09-03T04:29:09.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 7777ea3b..b038c20d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-194 +release: development-195 components: - - { id: deployment, version: 0.1.0-rc.232, commit: 3684896f3aca09db2999d96d19b86af4063f7f71, digest: 'sha256:08ac296344822e6a4d362107ddc86fa302a8b8cd5ed5b9e9cfc23dd2c85dad05', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.232/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.233, commit: a26158621401624ad535a5accfc8ba2a2a3c523c, digest: 'sha256:d6dbc3eba22cc57bacd8111b6604de39108ed2c231e645d30c810bdb5812dbbe', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.233/exact-head.json' } - { id: sdk, version: 0.13.0-rc.82, commit: b07c37d0f9945a71546ce72596a32ab1919bb252, digest: 'sha256:0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.82' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.74, commit: 541ad3a7baa439db4e94b8d6a4dc6fc53531b74a, digest: 'sha256:ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.74' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:05f47f3d2f11158c2cf9579736befe0360e1e488c6e220e01da6e810a63e214f' +digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' From 58624eaca254f54d202fa11fad1f80950338e1fe Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 00:59:02 -0400 Subject: [PATCH 194/501] Compose development generation 196 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 34b6d3d0..512566e7 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' } +integration: { id: development, digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index b2d8fa95..ef1988d5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' } +integration: { id: development, digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 0c124e25..2eb3f52b 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc233", - "generation": 195, + "generation": 196, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "f7b8ae5d8444c412ad06db43611e479971238ba1" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "19f98ca4225191cde718cefb247924edf34b67a2" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "a26158621401624ad535a5accfc8ba2a2a3c523c", "tag": "0.1.0-rc.233" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.82", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.82.tgz", "sha256": "0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5" } }, @@ -28,12 +28,12 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc74-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/component-release.json", "sha256": "ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/compose.yml", "sha256": "1d9634ac4318f1a763869da7f9c3e1f4aa81a316d6eb12f5749d0141de280c02" } }] }, { "componentId": "admin", "release": "0.12.59~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/component-release.json", "sha256": "ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/compose.yml", "sha256": "dcaabed47acd2782c8d5b6249c592e837cf6bd6273dd8065eafc3acadc375a1c" } }] }, - { "componentId": "agent", "release": "0.13.0~rc41-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/component-release.json", "sha256": "fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.41/compose.yml", "sha256": "8a17116112800799808d392a37550543681188ef7131efff7365214ba7c775f6" } }] }, + { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T04:29:09.000Z" + "createdAt": "2026-09-03T04:58:09.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index b038c20d..03d537cd 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-195 +release: development-196 components: - { id: deployment, version: 0.1.0-rc.233, commit: a26158621401624ad535a5accfc8ba2a2a3c523c, digest: 'sha256:d6dbc3eba22cc57bacd8111b6604de39108ed2c231e645d30c810bdb5812dbbe', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.233/exact-head.json' } - { id: sdk, version: 0.13.0-rc.82, commit: b07c37d0f9945a71546ce72596a32ab1919bb252, digest: 'sha256:0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.82' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.74, commit: 541ad3a7baa439db4e94b8d6a4dc6fc53531b74a, digest: 'sha256:ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.74' } - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } - - { id: agent, version: 0.13.0-rc.41, commit: 1b2aec1978824ab32eebe32780fc892d8b071272, digest: 'sha256:fce85636f3ddfe86d903b1c1f6316062fa94cd5d3413077a7ff3a2f1f4fe0d94', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.41' } + - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:6332343792f6f195ef24a93002e4c5f9aecac9cf651e80625189dc2882ce86b3' +digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' From 534f6693f9b3902f09ebaeaedbe02a9bba5c5ebd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 01:18:43 -0400 Subject: [PATCH 195/501] Compose development generation 197 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 512566e7..f13360e3 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' } +integration: { id: development, digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index ef1988d5..78e8e895 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' } +integration: { id: development, digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 2eb3f52b..68eb4630 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc233", - "generation": 196, + "release": "0.1.0~rc234", + "generation": 197, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "19f98ca4225191cde718cefb247924edf34b67a2" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a26158621401624ad535a5accfc8ba2a2a3c523c", "tag": "0.1.0-rc.233" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "25351e13dc208053e8fd9b4e3c8799440750066a" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bdf8c6710c0e2bcea79f64d1139d856a1356f1f", "tag": "0.1.0-rc.234" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.82", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.82.tgz", "sha256": "0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T04:58:09.000Z" + "createdAt": "2026-09-03T05:14:43.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 03d537cd..f335b4fa 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-196 +release: development-197 components: - - { id: deployment, version: 0.1.0-rc.233, commit: a26158621401624ad535a5accfc8ba2a2a3c523c, digest: 'sha256:d6dbc3eba22cc57bacd8111b6604de39108ed2c231e645d30c810bdb5812dbbe', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.233/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.234, commit: 1bdf8c6710c0e2bcea79f64d1139d856a1356f1f, digest: 'sha256:d43ba9b9e2eef786fa06f1a578aa162a81df71bcf59133dc9f1ccf4ba224901f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.234/exact-head.json' } - { id: sdk, version: 0.13.0-rc.82, commit: b07c37d0f9945a71546ce72596a32ab1919bb252, digest: 'sha256:0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.82' } - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - { id: api, version: 0.8.0-rc.74, commit: 541ad3a7baa439db4e94b8d6a4dc6fc53531b74a, digest: 'sha256:ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.74' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:8f21fd173e776fb0b65333fbb1eeff29c27cda8b5256f0e3e0d1cdf8a9f1814f' +digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' From e657bd6b903efa6cec49e90966e8c199b319ada4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 04:55:51 -0400 Subject: [PATCH 196/501] compose platform credential bootstrap generation --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 24 ++++++++++---------- config/integrations/development.yaml | 14 ++++++------ docs/hosted-deployment.md | 24 ++++++++++++++++---- 5 files changed, 41 insertions(+), 25 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f13360e3..ad840de7 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' } +integration: { id: development, digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 78e8e895..84e62e2f 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' } +integration: { id: development, digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 68eb4630..001078be 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc234", - "generation": 197, + "release": "0.1.0~rc235", + "generation": 198, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "25351e13dc208053e8fd9b4e3c8799440750066a" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "1bdf8c6710c0e2bcea79f64d1139d856a1356f1f", "tag": "0.1.0-rc.234" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "8b6d453ea9c04992797acb4bc9e0d25237856d81" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4fdeb454de8e160184471f6cdaafdc68ef4b156d", "tag": "0.1.0-rc.235" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.82", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.82.tgz", "sha256": "0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.66", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.66/treeseed-api-0.8.0-rc.66.tgz", "sha256": "02b4b1e3e59a3d5a2a629e0dfb53f6672c003796f47b8d8b6cd5a43afe36aab0" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.11", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.11.tgz", "sha256": "5602985b6b4561332914d1fe558d07e2427031ea282b7c736ea4856b4bd1c1db" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.85", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.85.tgz", "sha256": "dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.78", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/treeseed-api-0.8.0-rc.78.tgz", "sha256": "b5dd8e4e4e88cf0b881716bab7b68dea1ba271fc69a5f88350b8242d14ba69d2" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.24", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.24.tgz", "sha256": "bbeea4e35369d1ffe459b858f75dd2e26639e41202a5e9a715076292e4ff8ad4" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.54", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.54.tgz", "sha256": "3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.56", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.56.tgz", "sha256": "1f2255aa7b6549315069331c8cdb6240dfce7926d05231cf3923815b8f0ea921" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc74-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/component-release.json", "sha256": "ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.74/compose.yml", "sha256": "1d9634ac4318f1a763869da7f9c3e1f4aa81a316d6eb12f5749d0141de280c02" } }] }, - { "componentId": "admin", "release": "0.12.59~rc24-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/component-release.json", "sha256": "ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.24/compose.yml", "sha256": "dcaabed47acd2782c8d5b6249c592e837cf6bd6273dd8065eafc3acadc375a1c" } }] }, + { "componentId": "api", "release": "0.8.0~rc78-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/component-release.json", "sha256": "bbb22af148970b54b4e2bba986fa5140f07dbb3693fe3b6ae9c5e2bfbbdd0cfb" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/compose.yml", "sha256": "feebca285dfdfbb436f3ad6d8542f304ac1ee4f5337a17bb49aeef9b3f6d0ab7" } }] }, + { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T05:14:43.000Z" + "createdAt": "2026-09-03T08:54:39.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index f335b4fa..6f45fe04 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-197 +release: development-198 components: - - { id: deployment, version: 0.1.0-rc.234, commit: 1bdf8c6710c0e2bcea79f64d1139d856a1356f1f, digest: 'sha256:d43ba9b9e2eef786fa06f1a578aa162a81df71bcf59133dc9f1ccf4ba224901f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.234/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.82, commit: b07c37d0f9945a71546ce72596a32ab1919bb252, digest: 'sha256:0e2fc0c25b07e2649330abd52a1dad58c732cf49512f81d5a7effcbedca455a5', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.82' } - - { id: cli, version: 0.13.0-rc.54, commit: 4bf03b8472ff85c62f567c0ba60379333a03d4f3, digest: 'sha256:3d76b38c92837696a898da7d1f191f5fe0ced886b2733f7bb15b628d0d4b39e6', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.54' } - - { id: api, version: 0.8.0-rc.74, commit: 541ad3a7baa439db4e94b8d6a4dc6fc53531b74a, digest: 'sha256:ac15a980e611cff13c1f155e855b44da5cd4965317a7c438017254c60d960cfe', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.74' } - - { id: admin, version: 0.12.59-rc.24, commit: f2aa40ac3861ecf43584d8c6af2a72c3f838287e, digest: 'sha256:ba744d2a4194404df657d12a9c5cadbf95a6b401e930cd3fc30ef8e9d449a16e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.24' } + - { id: deployment, version: 0.1.0-rc.235, commit: 4fdeb454de8e160184471f6cdaafdc68ef4b156d, digest: 'sha256:df543f38f04eeef8322d7bbc0c591c10f6d376747edb9229b78560a4bc93717f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.235/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.85, commit: 96a65d6f215a47e9084541204c1f45fa51fa9f59, digest: 'sha256:dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.85' } + - { id: cli, version: 0.13.0-rc.56, commit: fb01bb42dc89acdaef80ae70bd3e975962989250, digest: 'sha256:1f2255aa7b6549315069331c8cdb6240dfce7926d05231cf3923815b8f0ea921', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.56' } + - { id: api, version: 0.8.0-rc.78, commit: 6b5f6b72d7a9f54b9756f07f1d3c053cb16c78bc, digest: 'sha256:bbb22af148970b54b4e2bba986fa5140f07dbb3693fe3b6ae9c5e2bfbbdd0cfb', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.78' } + - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:55d8f05f1fd593a2476f55ed74d23b828a3997beb83941626680a26660cbed94' +digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index 29861ec6..f72db7fd 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -8,17 +8,33 @@ OpenTofu state is isolated by team, deployment, environment, and stack at: teams//opentofu/v1/deployments//environments//stacks//terraform.tfstate ``` -The R2 bucket and endpoint come from the active team's Cloudflare storage connection. State access uses a short-lived, team-scoped storage session and state encryption key resolved through the team's OpenBao service credential vault. Provider credentials are resolved only by the operations runner and never enter Platform Git, API records, plans, receipts, logs, or evidence. +The R2 bucket and endpoint come from the active team's Cloudflare storage connection. State access uses a short-lived, team-scoped storage session and an independently scoped state-encryption key. Provider and state credentials are released only to the operations runner for one exact operation and never enter Platform Git, API records, plans, receipts, logs, or evidence. + +## Credential bootstrap + +The bootstrap authority is TreeSeed's client-encrypted team service vault. A team owner initializes the vault in Admin or `trsd`; the client encrypts every value before sending it to the API, and the personal unlock material remains with the user. Planning, apply, and rollback state the exact team, environment, subject digest, purpose, required fields, connection profile, and expiry before the user approves access. + +For an approved operation, the operations runner creates an ephemeral public key. The client decrypts only the requested fields locally, seals them to that key, and submits a short-lived single-use delivery. The runner consumes the delivery in memory and destroys the ciphertext and ephemeral private key after use. Reuse, expiry, a changed plan digest, a different purpose, a different profile, extra fields, or a cross-team request fails closed. + +OpenBao is an optional authority for a team that later enables unattended reconciliation. It is not required to install TreeSeed, initialize a team, configure Cloudflare or Railway, create the first plan, or provision OpenBao itself. An OpenBao outage therefore blocks only operations explicitly configured for unattended external-vault authority; interactive client-vault operations continue to use the bootstrap path. If a team deploys OpenBao on Railway or another target, that service and its dependencies are reconciled by Deployment like any other explicitly selected hosted resource—Platform does not bundle or assume it. Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection reference** to that exact value; the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. The staging topology requires these active, team-scoped connections: - `cloudflare-hosting-staging` for Pages, Workers, DNS, and TLS. -- `cloudflare-state-staging` for the R2 state bucket and endpoint, with the state-encryption key reference held by the service credential vault. +- `cloudflare-state-staging` for the R2 state bucket and endpoint, storage session, and separately authorized state-encryption key. - `railway-hosting-staging` for the Railway workspace and staging project/environment. -Account, zone, workspace, project, environment, bucket, endpoint, and key references are connection metadata supplied at installation time. Credential values remain vault-backed and must not be committed to this repository. +Their bootstrap profiles are exact: + +| Connection | Non-secret configuration | Client-encrypted profile and fields | Approved capabilities | +|---|---|---|---| +| `cloudflare-hosting-staging` | `deploymentEnvironment=staging`, account ID, zone ID | `cloudflare-runtime.apiToken`; `cloudflare-dns.apiToken` | `frontend-hosting`, `dns-management` | +| `cloudflare-state-staging` | `deploymentEnvironment=staging`, account ID, state bucket, HTTPS state endpoint, optional region, state-encryption key reference | `s3-state-session.accessKeyId`, `secretAccessKey`, optional `sessionToken`; `opentofu-state-encryption.stateEncryptionKey` | `object-storage`, `state-encryption` | +| `railway-hosting-staging` | `deploymentEnvironment=staging`, workspace ID, project ID, environment ID | `railway-workspace.apiToken` | `backend-hosting`, `database-hosting`, `private-knowledge-index-hosting` | + +Account, zone, workspace, project, environment, bucket, endpoint, and key references are connection metadata supplied at installation time. Credential values remain encrypted in the team service vault and must not be committed to this repository. Connections intended for bootstrap are `interactive-only`; changing one to unattended authority is a separate reviewed team decision. ## Plan an environment @@ -29,6 +45,6 @@ trsd platform topology plan config/topologies/staging.yaml --artifacts .treeseed trsd platform topology plan config/topologies/production.yaml --artifacts .treeseed/topology-artifacts/production.json --json ``` -The CLI binds the active authenticated team and exact current Platform commit. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, unavailable service connections, provider drift, and cross-team state custody all fail closed. Apply requires the exact reviewed plan, an environment approval bound to its digest, and `--yes`. Production remains blocked at the Platform promotion boundary until the full stable release gates pass. +The CLI binds the active authenticated team and exact current Platform commit. In an interactive terminal it displays the bounded credential request and prompts for the personal vault passphrase without echo; headless execution accepts the passphrase only from standard input. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired or replayed credential delivery, and cross-team state custody all fail closed. Apply requires the exact reviewed plan, an environment approval bound to its digest, and `--yes`. Production remains blocked at the Platform promotion boundary until the full stable release gates pass. Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. Railway owns PostgreSQL, the control-plane API, operations runner, and TreeDX service. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. From ac765dfbdde7a05b015ab029ccc17da2a8fbd551 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 06:23:36 -0400 Subject: [PATCH 197/501] chore: compose credential-plane generation 199 Refs #399 --- AGENTS.md | 2 ++ config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 14 +++++++------- config/integrations/development.yaml | 8 ++++---- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 13e2acbd..46b60754 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,6 +8,8 @@ Conserve human and AI capacity by optimizing for verified outcomes rather than r Every delivery follows `Issue -> branch -> pull request -> Actions -> staging merge -> release/read-back -> Platform composition -> managed acceptance -> main/production`. Before branching, merging, or releasing, fetch and verify the exact protected-branch head. Do not create undocumented side channels for plans, progress, or acceptance. +Human approval is reserved exclusively for pull requests targeting `main` as the production promotion boundary. Staging pull requests, candidate publication, staging deployments, infrastructure plans, reconciliation, and acceptance proceed through authorized agents and required automated checks without human-only approval gates. + ## Branch and deployment boundary `main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments. diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ad840de7..84b28dd0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' } +integration: { id: development, digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 84e62e2f..aa082b10 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' } +integration: { id: development, digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 001078be..b779a250 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc235", - "generation": 198, + "release": "0.1.0~rc237", + "generation": 199, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "8b6d453ea9c04992797acb4bc9e0d25237856d81" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4fdeb454de8e160184471f6cdaafdc68ef4b156d", "tag": "0.1.0-rc.235" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "948b3f2e4527e1fd77131bfce047ec23af742df7" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "bab91d62ef4f519dd7561947d29db273f699b8ed", "tag": "0.1.0-rc.237" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.85", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.85.tgz", "sha256": "dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.78", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/treeseed-api-0.8.0-rc.78.tgz", "sha256": "b5dd8e4e4e88cf0b881716bab7b68dea1ba271fc69a5f88350b8242d14ba69d2" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.79", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/treeseed-api-0.8.0-rc.79.tgz", "sha256": "dc0252d84c9d02b9a17b84a3a7e56b752ec9987d8d6911a7929953c8a9900966" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc78-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/component-release.json", "sha256": "bbb22af148970b54b4e2bba986fa5140f07dbb3693fe3b6ae9c5e2bfbbdd0cfb" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.78/compose.yml", "sha256": "feebca285dfdfbb436f3ad6d8542f304ac1ee4f5337a17bb49aeef9b3f6d0ab7" } }] }, + { "componentId": "api", "release": "0.8.0~rc79-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/component-release.json", "sha256": "395b9114f29a92fef0c92a16b596a832e794697256676de3253af60db441bd99" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/compose.yml", "sha256": "4e44bd95d98f40940883ddeabf9613c9a20710662a9c015b54df59dd76c5f1e1" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T08:54:39.000Z" + "createdAt": "2026-09-03T10:12:00.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6f45fe04..fe7e501f 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-198 +release: development-199 components: - - { id: deployment, version: 0.1.0-rc.235, commit: 4fdeb454de8e160184471f6cdaafdc68ef4b156d, digest: 'sha256:df543f38f04eeef8322d7bbc0c591c10f6d376747edb9229b78560a4bc93717f', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.235/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.237, commit: bab91d62ef4f519dd7561947d29db273f699b8ed, digest: 'sha256:6df3754620939854bb69e1a8630a68bff6840fa9c29ca231963620c66f7b25b7', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.237/exact-head.json' } - { id: sdk, version: 0.13.0-rc.85, commit: 96a65d6f215a47e9084541204c1f45fa51fa9f59, digest: 'sha256:dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.85' } - { id: cli, version: 0.13.0-rc.56, commit: fb01bb42dc89acdaef80ae70bd3e975962989250, digest: 'sha256:1f2255aa7b6549315069331c8cdb6240dfce7926d05231cf3923815b8f0ea921', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.56' } - - { id: api, version: 0.8.0-rc.78, commit: 6b5f6b72d7a9f54b9756f07f1d3c053cb16c78bc, digest: 'sha256:bbb22af148970b54b4e2bba986fa5140f07dbb3693fe3b6ae9c5e2bfbbdd0cfb', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.78' } + - { id: api, version: 0.8.0-rc.79, commit: aafa1cfa8d6404de471acfab6551c0d1578dcf84, digest: 'sha256:395b9114f29a92fef0c92a16b596a832e794697256676de3253af60db441bd99', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.79' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:56622ec828021294bc19731270dce76f41edf298b6114fc01f81f3740fda475d' +digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' From e54a28744253d220a44119ee700854fdf76c3e9d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 07:28:53 -0400 Subject: [PATCH 198/501] config: make hosted topology agent-authorized (#402) --- config/topologies/production.yaml | 2 +- config/topologies/staging.yaml | 2 +- docs/hosted-deployment.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/topologies/production.yaml b/config/topologies/production.yaml index 073b74b1..5a05c6a7 100644 --- a/config/topologies/production.yaml +++ b/config/topologies/production.yaml @@ -3,7 +3,7 @@ id: treeseed-production deploymentId: treeseed-cloud stackId: control-plane environment: production -mutation: approval-required +mutation: agent-authorized stateBackend: { connectionRef: cloudflare-state-production } providerConnections: cloudflare: { connectionRef: cloudflare-hosting-production } diff --git a/config/topologies/staging.yaml b/config/topologies/staging.yaml index 9e367a47..431bafd2 100644 --- a/config/topologies/staging.yaml +++ b/config/topologies/staging.yaml @@ -3,7 +3,7 @@ id: treeseed-staging deploymentId: treeseed-cloud stackId: control-plane environment: staging -mutation: approval-required +mutation: agent-authorized stateBackend: { connectionRef: cloudflare-state-staging } providerConnections: cloudflare: { connectionRef: cloudflare-hosting-staging } diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index f72db7fd..81e547ad 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -12,9 +12,9 @@ The R2 bucket and endpoint come from the active team's Cloudflare storage connec ## Credential bootstrap -The bootstrap authority is TreeSeed's client-encrypted team service vault. A team owner initializes the vault in Admin or `trsd`; the client encrypts every value before sending it to the API, and the personal unlock material remains with the user. Planning, apply, and rollback state the exact team, environment, subject digest, purpose, required fields, connection profile, and expiry before the user approves access. +The bootstrap authority is TreeSeed's client-encrypted team service vault. A team owner initializes the vault in Admin or `trsd`; the client encrypts every value before sending it to the API, and the personal unlock material remains with the user. Planning, apply, and rollback state the exact team, environment, subject digest, purpose, required fields, connection profile, and expiry before an authorized operator or agent unlocks the required access. -For an approved operation, the operations runner creates an ephemeral public key. The client decrypts only the requested fields locally, seals them to that key, and submits a short-lived single-use delivery. The runner consumes the delivery in memory and destroys the ciphertext and ephemeral private key after use. Reuse, expiry, a changed plan digest, a different purpose, a different profile, extra fields, or a cross-team request fails closed. +For an authorized operation, the operations runner creates an ephemeral public key. The client decrypts only the requested fields locally, seals them to that key, and submits a short-lived single-use delivery. The runner consumes the delivery in memory and destroys the ciphertext and ephemeral private key after use. Reuse, expiry, a changed plan digest, a different purpose, a different profile, extra fields, or a cross-team request fails closed. OpenBao is an optional authority for a team that later enables unattended reconciliation. It is not required to install TreeSeed, initialize a team, configure Cloudflare or Railway, create the first plan, or provision OpenBao itself. An OpenBao outage therefore blocks only operations explicitly configured for unattended external-vault authority; interactive client-vault operations continue to use the bootstrap path. If a team deploys OpenBao on Railway or another target, that service and its dependencies are reconciled by Deployment like any other explicitly selected hosted resource—Platform does not bundle or assume it. @@ -45,6 +45,6 @@ trsd platform topology plan config/topologies/staging.yaml --artifacts .treeseed trsd platform topology plan config/topologies/production.yaml --artifacts .treeseed/topology-artifacts/production.json --json ``` -The CLI binds the active authenticated team and exact current Platform commit. In an interactive terminal it displays the bounded credential request and prompts for the personal vault passphrase without echo; headless execution accepts the passphrase only from standard input. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired or replayed credential delivery, and cross-team state custody all fail closed. Apply requires the exact reviewed plan, an environment approval bound to its digest, and `--yes`. Production remains blocked at the Platform promotion boundary until the full stable release gates pass. +The CLI binds the active authenticated team and exact current Platform commit. In an interactive terminal it displays the bounded credential request and prompts for the personal vault passphrase without echo; headless execution accepts the passphrase only from standard input. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired or replayed credential delivery, and cross-team state custody all fail closed. Apply requires authenticated `infrastructure.write` authority, the exact reviewed plan, its digest precondition, and `--yes`; no separate environment approval exists. Production is authorized only by human review of the exact Platform pull request targeting `main`, then proceeds through automated reconciliation without a second approval gate. Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. Railway owns PostgreSQL, the control-plane API, operations runner, and TreeDX service. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. From a673ca9dbec0983ba148c6b31fd54d0c054e3243 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 3 Sep 2026 07:36:13 -0400 Subject: [PATCH 199/501] chore: compose hosted topology generation 200 (#404) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 26 ++++++++++---------- config/integrations/development.yaml | 12 ++++----- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 84b28dd0..b500d21c 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' } +integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index aa082b10..e895fbf2 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' } +integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index b779a250..96c450af 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,32 +1,32 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc237", - "generation": 199, + "release": "0.1.0~rc239", + "generation": 200, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "948b3f2e4527e1fd77131bfce047ec23af742df7" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "bab91d62ef4f519dd7561947d29db273f699b8ed", "tag": "0.1.0-rc.237" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "e54a28744253d220a44119ee700854fdf76c3e9d" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "a7d2427518d847c0e386d53ba839f5ec33855f7c", "tag": "0.1.0-rc.239" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.85", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.85.tgz", "sha256": "dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.79", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/treeseed-api-0.8.0-rc.79.tgz", "sha256": "dc0252d84c9d02b9a17b84a3a7e56b752ec9987d8d6911a7929953c8a9900966" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.86", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.86.tgz", "sha256": "a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.56", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.56.tgz", "sha256": "1f2255aa7b6549315069331c8cdb6240dfce7926d05231cf3923815b8f0ea921" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.59", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.59.tgz", "sha256": "81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "hostProfiles": [ - { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, - { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, - { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, - { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/9a355eb112498353827d19c030b3bd67bde46111/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } + { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, + { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, + { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, + { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc79-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/component-release.json", "sha256": "395b9114f29a92fef0c92a16b596a832e794697256676de3253af60db441bd99" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.79/compose.yml", "sha256": "4e44bd95d98f40940883ddeabf9613c9a20710662a9c015b54df59dd76c5f1e1" } }] }, + { "componentId": "api", "release": "0.8.0~rc81-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/component-release.json", "sha256": "347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/compose.yml", "sha256": "73ee7348a8ec8282f84e75d8ff000cc1e4fd5ad19c2d95bd1af6fdf29b3b85d9" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T10:12:00.000Z" + "createdAt": "2026-09-03T11:33:43.000Z" } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index fe7e501f..718f41b3 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-199 +release: development-200 components: - - { id: deployment, version: 0.1.0-rc.237, commit: bab91d62ef4f519dd7561947d29db273f699b8ed, digest: 'sha256:6df3754620939854bb69e1a8630a68bff6840fa9c29ca231963620c66f7b25b7', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.237/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.85, commit: 96a65d6f215a47e9084541204c1f45fa51fa9f59, digest: 'sha256:dfa87b6653b6b926719347110b6fbec310084e00faf96f02b56899f862f8c2f8', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.85' } - - { id: cli, version: 0.13.0-rc.56, commit: fb01bb42dc89acdaef80ae70bd3e975962989250, digest: 'sha256:1f2255aa7b6549315069331c8cdb6240dfce7926d05231cf3923815b8f0ea921', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.56' } - - { id: api, version: 0.8.0-rc.79, commit: aafa1cfa8d6404de471acfab6551c0d1578dcf84, digest: 'sha256:395b9114f29a92fef0c92a16b596a832e794697256676de3253af60db441bd99', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.79' } + - { id: deployment, version: 0.1.0-rc.239, commit: a7d2427518d847c0e386d53ba839f5ec33855f7c, digest: 'sha256:ce158a9c9bd5c47f18be9a93869701aac8478bb299d2e045a61c1f37278b92d8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.239/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.86, commit: 62c750ce77e2a4f2e0c0c73a4344c293d7bbef47, digest: 'sha256:a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.86' } + - { id: cli, version: 0.13.0-rc.59, commit: 8a0f1585a27eaea8c992e836d14aff890a578780, digest: 'sha256:81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.59' } + - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4bc8b47c438b426af6009d578e1dacc2df7ff668d7216d759f59c40723736afd' +digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' From 4266bb9288fb875b70b7b66fb59c4fcd88189132 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 00:56:28 -0400 Subject: [PATCH 200/501] Document the two-custody secret architecture and coordinated release boundary --- docs/hosted-deployment.md | 14 ++++++------- docs/secret-custody.md | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 docs/secret-custody.md diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index 81e547ad..e406deb8 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -12,11 +12,11 @@ The R2 bucket and endpoint come from the active team's Cloudflare storage connec ## Credential bootstrap -The bootstrap authority is TreeSeed's client-encrypted team service vault. A team owner initializes the vault in Admin or `trsd`; the client encrypts every value before sending it to the API, and the personal unlock material remains with the user. Planning, apply, and rollback state the exact team, environment, subject digest, purpose, required fields, connection profile, and expiry before an authorized operator or agent unlocks the required access. +Core OpenBao is a required private service alongside the control-plane API. Deployment owns its immutable image, TLS, persistent Raft storage, initialization, bounded AppRole sessions and OS-backed seal/recovery custody. It is not an optional external provider. API readiness fails closed when OpenBao is unavailable. -For an authorized operation, the operations runner creates an ephemeral public key. The client decrypts only the requested fields locally, seals them to that key, and submits a short-lived single-use delivery. The runner consumes the delivery in memory and destroys the ciphertext and ephemeral private key after use. Reuse, expiry, a changed plan digest, a different purpose, a different profile, extra fields, or a cross-team request fails closed. +A credential administrator creates a team service connection and enters its credential profiles in Admin or through `trsd services credentials`. The authenticated API authorizes the team, enabled capability, profile and environment before writing to OpenBao with an exact expected version. Only non-secret descriptors and authority versions enter PostgreSQL. There is no personal vault passphrase, browser key/grant/envelope, interactive runner delivery or environment-reference authority. -OpenBao is an optional authority for a team that later enables unattended reconciliation. It is not required to install TreeSeed, initialize a team, configure Cloudflare or Railway, create the first plan, or provision OpenBao itself. An OpenBao outage therefore blocks only operations explicitly configured for unattended external-vault authority; interactive client-vault operations continue to use the bootstrap path. If a team deploys OpenBao on Railway or another target, that service and its dependencies are reconciled by Deployment like any other explicitly selected hosted resource—Platform does not bundle or assume it. +The operations runner obtains a short-lived OpenBao session, reads only the operation's authorized scope, and revokes the session on completion or failure. State/backend/profile authority and current secret version are rechecked before use. An outage blocks credential-dependent work; it never enables a fallback vault. See [Secret custody](secret-custody.md) for bootstrap and recovery boundaries. Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection reference** to that exact value; the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. @@ -28,13 +28,13 @@ The staging topology requires these active, team-scoped connections: Their bootstrap profiles are exact: -| Connection | Non-secret configuration | Client-encrypted profile and fields | Approved capabilities | +| Connection | Non-secret configuration | OpenBao profile and fields | Approved capabilities | |---|---|---|---| | `cloudflare-hosting-staging` | `deploymentEnvironment=staging`, account ID, zone ID | `cloudflare-runtime.apiToken`; `cloudflare-dns.apiToken` | `frontend-hosting`, `dns-management` | | `cloudflare-state-staging` | `deploymentEnvironment=staging`, account ID, state bucket, HTTPS state endpoint, optional region, state-encryption key reference | `s3-state-session.accessKeyId`, `secretAccessKey`, optional `sessionToken`; `opentofu-state-encryption.stateEncryptionKey` | `object-storage`, `state-encryption` | | `railway-hosting-staging` | `deploymentEnvironment=staging`, workspace ID, project ID, environment ID | `railway-workspace.apiToken` | `backend-hosting`, `database-hosting`, `private-knowledge-index-hosting` | -Account, zone, workspace, project, environment, bucket, endpoint, and key references are connection metadata supplied at installation time. Credential values remain encrypted in the team service vault and must not be committed to this repository. Connections intended for bootstrap are `interactive-only`; changing one to unattended authority is a separate reviewed team decision. +Account, zone, workspace, project, environment, bucket, endpoint, and key references are installation-time connection metadata. Credential values remain in OpenBao and must not be committed here. Authorized agents can use the same capability-scoped connections without a separate human approval or personal unlock session. ## Plan an environment @@ -45,6 +45,6 @@ trsd platform topology plan config/topologies/staging.yaml --artifacts .treeseed trsd platform topology plan config/topologies/production.yaml --artifacts .treeseed/topology-artifacts/production.json --json ``` -The CLI binds the active authenticated team and exact current Platform commit. In an interactive terminal it displays the bounded credential request and prompts for the personal vault passphrase without echo; headless execution accepts the passphrase only from standard input. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired or replayed credential delivery, and cross-team state custody all fail closed. Apply requires authenticated `infrastructure.write` authority, the exact reviewed plan, its digest precondition, and `--yes`; no separate environment approval exists. Production is authorized only by human review of the exact Platform pull request targeting `main`, then proceeds through automated reconciliation without a second approval gate. +The CLI binds the active authenticated team and exact current Platform commit. Credential resolution is server-side through core OpenBao; planning does not prompt for a personal vault passphrase. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired custody sessions or stale credential versions, and cross-team state custody all fail closed. Apply requires authenticated `infrastructure.write` authority, the exact reviewed plan, its digest precondition, and `--yes`; no separate environment approval exists. Production is authorized only by human review of the exact Platform pull request targeting `main`, then proceeds through automated reconciliation without a second approval gate. -Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. Railway owns PostgreSQL, the control-plane API, operations runner, and TreeDX service. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. +Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. The target Railway composition must include PostgreSQL, core OpenBao, the control-plane API, operations runner, and TreeDX service. Cloud rollout remains blocked until Deployment has provisioned and accepted an independent cloud seal authority, private TLS, persistent storage and recovery; the older topology templates must not be applied without that closure. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. diff --git a/docs/secret-custody.md b/docs/secret-custody.md new file mode 100644 index 00000000..b612155a --- /dev/null +++ b/docs/secret-custody.md @@ -0,0 +1,41 @@ +# Secret custody + +TreeSeed has two custody implementations. Platform declares composition and ownership; it does not implement a vault. + +| Custody | Owns | Access | +|---|---|---| +| Core OpenBao | Team service/provider credentials and OpenTofu encryption keys | API-authorized team, project, environment and purpose; versioned writes; short-lived trusted-service sessions | +| OS-backed local custody | Host bootstrap/seal/recovery roots, CLI OAuth sessions and provider-owned credentials | Deployment implementation, private OS credentials and scoped authenticated local records; provider environment files remain inside the OS-encrypted provider volume | + +Cryptographic envelopes for protected diagnostics, native GitHub App token exchange and GitHub Actions sealed uploads are protocols/data encryption, not additional credential stores. Runtime environment variables are an injection transport, not an alternative team-vault authority. Bootstrap inputs must come from protected installation custody; never commit their values or persist plaintext key fallbacks. + +## Team connections + +Sign in to Admin, select the team, open Services and configure the connection's non-secret target and enabled capabilities. On that connection, save each required credential profile. Admin sends the value over HTTPS to the authenticated API and clears secret fields. Read-back returns configured field names and version, never values. No personal passphrase or team-vault initialization wizard exists. + +The corresponding CLI surface is: + +```text +trsd services credentials show --team --json +trsd services credentials put --team --expected-version +trsd services credentials validate --team --expected-version --json +trsd services credentials delete --team --expected-version --json +``` + +Use hidden prompts or `--stdin` for a JSON field object; never place values in arguments or shell history. Version zero creates a new profile. Inspect the current version before replacement or deletion. R2 validation is read-only; encryption-key validation checks key format, not remote resource readiness. Neither substitutes for hosted plan/apply/read-back acceptance. + +## Local custody and bootstrap + +CLI sessions use OS-sealed local custody. `trsd secrets lock` prevents decryption across CLI invocations; `trsd secrets unlock` asks the OS to unlock the key. There is no plaintext CLI keyring or fake key rotation command. OAuth reauthentication replaces session credentials. + +The host manager prepares OpenBao's TLS and static-seal material outside its Raft volume. A one-shot initializer configures KV/AppRole authority and revokes initialization root authority. The API and runner receive only private client identity mounts. Do not mount these into provider assignments or custom applications. + +Provider identities and membership credentials use the shared Deployment local store with an OS-injected key. Provider secrets stay on the provider; arbitrary host environment inheritance is denied. Existing retired files, missing keys, unsafe paths and invalid ciphertext fail closed. No plaintext import, compatibility reader or automatic identity regeneration is allowed. An uncertain identity rotation retains its encrypted pending transaction for recovery. + +Recovery-bundle passphrases still protect offline host recovery. They are distinct from the removed personal service-vault passphrase. Preserve an independently accessible encrypted recovery bundle and test restoration before replacing OS seal authority. + +## Release boundary + +The consumer refactor must ship as one exact composition. Do not mix a new Admin/CLI with an old API or activate a new API without its Deployment/OpenBao bootstrap closure. Repository tests and staging PR merges are not evidence of managed-host or Railway acceptance. + +Cloud rollout additionally requires an independently provisioned seal authority and private, persistent OpenBao service. Neither its seal key nor its only recovery copy may live in the state it unlocks. Until Deployment's hosted closure and restore tests pass, cloud apply remains fail-closed. Production promotion requires human review of the exact Platform PR to `main`; staging work has no human-only approval gate. From 3f484b203564ac310437ef16735a43b4dbce51d4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 01:00:28 -0400 Subject: [PATCH 201/501] Document the two-custody secret architecture and coordinated release boundary (#406) --- docs/hosted-deployment.md | 14 ++++++------- docs/secret-custody.md | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 docs/secret-custody.md diff --git a/docs/hosted-deployment.md b/docs/hosted-deployment.md index 81e547ad..e406deb8 100644 --- a/docs/hosted-deployment.md +++ b/docs/hosted-deployment.md @@ -12,11 +12,11 @@ The R2 bucket and endpoint come from the active team's Cloudflare storage connec ## Credential bootstrap -The bootstrap authority is TreeSeed's client-encrypted team service vault. A team owner initializes the vault in Admin or `trsd`; the client encrypts every value before sending it to the API, and the personal unlock material remains with the user. Planning, apply, and rollback state the exact team, environment, subject digest, purpose, required fields, connection profile, and expiry before an authorized operator or agent unlocks the required access. +Core OpenBao is a required private service alongside the control-plane API. Deployment owns its immutable image, TLS, persistent Raft storage, initialization, bounded AppRole sessions and OS-backed seal/recovery custody. It is not an optional external provider. API readiness fails closed when OpenBao is unavailable. -For an authorized operation, the operations runner creates an ephemeral public key. The client decrypts only the requested fields locally, seals them to that key, and submits a short-lived single-use delivery. The runner consumes the delivery in memory and destroys the ciphertext and ephemeral private key after use. Reuse, expiry, a changed plan digest, a different purpose, a different profile, extra fields, or a cross-team request fails closed. +A credential administrator creates a team service connection and enters its credential profiles in Admin or through `trsd services credentials`. The authenticated API authorizes the team, enabled capability, profile and environment before writing to OpenBao with an exact expected version. Only non-secret descriptors and authority versions enter PostgreSQL. There is no personal vault passphrase, browser key/grant/envelope, interactive runner delivery or environment-reference authority. -OpenBao is an optional authority for a team that later enables unattended reconciliation. It is not required to install TreeSeed, initialize a team, configure Cloudflare or Railway, create the first plan, or provision OpenBao itself. An OpenBao outage therefore blocks only operations explicitly configured for unattended external-vault authority; interactive client-vault operations continue to use the bootstrap path. If a team deploys OpenBao on Railway or another target, that service and its dependencies are reconciled by Deployment like any other explicitly selected hosted resource—Platform does not bundle or assume it. +The operations runner obtains a short-lived OpenBao session, reads only the operation's authorized scope, and revokes the session on completion or failure. State/backend/profile authority and current secret version are rechecked before use. An outage blocks credential-dependent work; it never enables a fallback vault. See [Secret custody](secret-custody.md) for bootstrap and recovery boundaries. Each `connectionRef` is a portable, provider-scoped reference. In Admin, set the service connection's **Connection reference** to that exact value; the API resolves it to the team-local immutable connection ID. Database IDs, account IDs, and credential material never belong in a Platform topology template. @@ -28,13 +28,13 @@ The staging topology requires these active, team-scoped connections: Their bootstrap profiles are exact: -| Connection | Non-secret configuration | Client-encrypted profile and fields | Approved capabilities | +| Connection | Non-secret configuration | OpenBao profile and fields | Approved capabilities | |---|---|---|---| | `cloudflare-hosting-staging` | `deploymentEnvironment=staging`, account ID, zone ID | `cloudflare-runtime.apiToken`; `cloudflare-dns.apiToken` | `frontend-hosting`, `dns-management` | | `cloudflare-state-staging` | `deploymentEnvironment=staging`, account ID, state bucket, HTTPS state endpoint, optional region, state-encryption key reference | `s3-state-session.accessKeyId`, `secretAccessKey`, optional `sessionToken`; `opentofu-state-encryption.stateEncryptionKey` | `object-storage`, `state-encryption` | | `railway-hosting-staging` | `deploymentEnvironment=staging`, workspace ID, project ID, environment ID | `railway-workspace.apiToken` | `backend-hosting`, `database-hosting`, `private-knowledge-index-hosting` | -Account, zone, workspace, project, environment, bucket, endpoint, and key references are connection metadata supplied at installation time. Credential values remain encrypted in the team service vault and must not be committed to this repository. Connections intended for bootstrap are `interactive-only`; changing one to unattended authority is a separate reviewed team decision. +Account, zone, workspace, project, environment, bucket, endpoint, and key references are installation-time connection metadata. Credential values remain in OpenBao and must not be committed here. Authorized agents can use the same capability-scoped connections without a separate human approval or personal unlock session. ## Plan an environment @@ -45,6 +45,6 @@ trsd platform topology plan config/topologies/staging.yaml --artifacts .treeseed trsd platform topology plan config/topologies/production.yaml --artifacts .treeseed/topology-artifacts/production.json --json ``` -The CLI binds the active authenticated team and exact current Platform commit. In an interactive terminal it displays the bounded credential request and prompts for the personal vault passphrase without echo; headless execution accepts the passphrase only from standard input. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired or replayed credential delivery, and cross-team state custody all fail closed. Apply requires authenticated `infrastructure.write` authority, the exact reviewed plan, its digest precondition, and `--yes`; no separate environment approval exists. Production is authorized only by human review of the exact Platform pull request targeting `main`, then proceeds through automated reconciliation without a second approval gate. +The CLI binds the active authenticated team and exact current Platform commit. Credential resolution is server-side through core OpenBao; planning does not prompt for a personal vault passphrase. Template changes, extra or missing artifacts, mutable images, wrong artifact kinds, incomplete connection profiles, unavailable service connections, provider drift, expired custody sessions or stale credential versions, and cross-team state custody all fail closed. Apply requires authenticated `infrastructure.write` authority, the exact reviewed plan, its digest precondition, and `--yes`; no separate environment approval exists. Production is authorized only by human review of the exact Platform pull request targeting `main`, then proceeds through automated reconciliation without a second approval gate. -Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. Railway owns PostgreSQL, the control-plane API, operations runner, and TreeDX service. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. +Cloudflare owns the Admin Pages project, API-proxy Worker, DNS, and TLS policy. The target Railway composition must include PostgreSQL, core OpenBao, the control-plane API, operations runner, and TreeDX service. Cloud rollout remains blocked until Deployment has provisioned and accepted an independent cloud seal authority, private TLS, persistent storage and recovery; the older topology templates must not be applied without that closure. The three production capacity providers use the generic Debian installer on Ubuntu 26.04, generate identities locally, and require admin approval after registration; OpenTofu does not manage those physical hosts. diff --git a/docs/secret-custody.md b/docs/secret-custody.md new file mode 100644 index 00000000..b612155a --- /dev/null +++ b/docs/secret-custody.md @@ -0,0 +1,41 @@ +# Secret custody + +TreeSeed has two custody implementations. Platform declares composition and ownership; it does not implement a vault. + +| Custody | Owns | Access | +|---|---|---| +| Core OpenBao | Team service/provider credentials and OpenTofu encryption keys | API-authorized team, project, environment and purpose; versioned writes; short-lived trusted-service sessions | +| OS-backed local custody | Host bootstrap/seal/recovery roots, CLI OAuth sessions and provider-owned credentials | Deployment implementation, private OS credentials and scoped authenticated local records; provider environment files remain inside the OS-encrypted provider volume | + +Cryptographic envelopes for protected diagnostics, native GitHub App token exchange and GitHub Actions sealed uploads are protocols/data encryption, not additional credential stores. Runtime environment variables are an injection transport, not an alternative team-vault authority. Bootstrap inputs must come from protected installation custody; never commit their values or persist plaintext key fallbacks. + +## Team connections + +Sign in to Admin, select the team, open Services and configure the connection's non-secret target and enabled capabilities. On that connection, save each required credential profile. Admin sends the value over HTTPS to the authenticated API and clears secret fields. Read-back returns configured field names and version, never values. No personal passphrase or team-vault initialization wizard exists. + +The corresponding CLI surface is: + +```text +trsd services credentials show --team --json +trsd services credentials put --team --expected-version +trsd services credentials validate --team --expected-version --json +trsd services credentials delete --team --expected-version --json +``` + +Use hidden prompts or `--stdin` for a JSON field object; never place values in arguments or shell history. Version zero creates a new profile. Inspect the current version before replacement or deletion. R2 validation is read-only; encryption-key validation checks key format, not remote resource readiness. Neither substitutes for hosted plan/apply/read-back acceptance. + +## Local custody and bootstrap + +CLI sessions use OS-sealed local custody. `trsd secrets lock` prevents decryption across CLI invocations; `trsd secrets unlock` asks the OS to unlock the key. There is no plaintext CLI keyring or fake key rotation command. OAuth reauthentication replaces session credentials. + +The host manager prepares OpenBao's TLS and static-seal material outside its Raft volume. A one-shot initializer configures KV/AppRole authority and revokes initialization root authority. The API and runner receive only private client identity mounts. Do not mount these into provider assignments or custom applications. + +Provider identities and membership credentials use the shared Deployment local store with an OS-injected key. Provider secrets stay on the provider; arbitrary host environment inheritance is denied. Existing retired files, missing keys, unsafe paths and invalid ciphertext fail closed. No plaintext import, compatibility reader or automatic identity regeneration is allowed. An uncertain identity rotation retains its encrypted pending transaction for recovery. + +Recovery-bundle passphrases still protect offline host recovery. They are distinct from the removed personal service-vault passphrase. Preserve an independently accessible encrypted recovery bundle and test restoration before replacing OS seal authority. + +## Release boundary + +The consumer refactor must ship as one exact composition. Do not mix a new Admin/CLI with an old API or activate a new API without its Deployment/OpenBao bootstrap closure. Repository tests and staging PR merges are not evidence of managed-host or Railway acceptance. + +Cloud rollout additionally requires an independently provisioned seal authority and private, persistent OpenBao service. Neither its seal key nor its only recovery copy may live in the state it unlocks. Until Deployment's hosted closure and restore tests pass, cloud apply remains fail-closed. Production promotion requires human review of the exact Platform PR to `main`; staging work has no human-only approval gate. From f31c8f68fe7d3c70fc1631734ed98f2bf377d3e0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 08:00:43 -0400 Subject: [PATCH 202/501] chore(integration): bind generation 201 provider OS custody candidate --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index b500d21c..f18061ce 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } +integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e895fbf2..bc1fe332 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } +integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 96c450af..e507ce74 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc239", - "generation": 200, + "release": "0.1.0~rc244", + "generation": 201, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e54a28744253d220a44119ee700854fdf76c3e9d" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a7d2427518d847c0e386d53ba839f5ec33855f7c", "tag": "0.1.0-rc.239" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3f484b203564ac310437ef16735a43b4dbce51d4" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.86", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.86.tgz", "sha256": "a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, @@ -28,7 +28,7 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc81-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/component-release.json", "sha256": "347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/compose.yml", "sha256": "73ee7348a8ec8282f84e75d8ff000cc1e4fd5ad19c2d95bd1af6fdf29b3b85d9" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, - { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, + { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 718f41b3..807e67cb 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-200 +release: development-201 components: - - { id: deployment, version: 0.1.0-rc.239, commit: a7d2427518d847c0e386d53ba839f5ec33855f7c, digest: 'sha256:ce158a9c9bd5c47f18be9a93869701aac8478bb299d2e045a61c1f37278b92d8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.239/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } - { id: sdk, version: 0.13.0-rc.86, commit: 62c750ce77e2a4f2e0c0c73a4344c293d7bbef47, digest: 'sha256:a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.86' } - { id: cli, version: 0.13.0-rc.59, commit: 8a0f1585a27eaea8c992e836d14aff890a578780, digest: 'sha256:81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.59' } - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } + - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' +digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' From 1dc9ad0ac885dbb77c636681dcece78f3c292997 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 08:02:26 -0400 Subject: [PATCH 203/501] chore(integration): bind generation 201 provider OS custody candidate (#407) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index b500d21c..f18061ce 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } +integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e895fbf2..bc1fe332 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' } +integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 96c450af..e507ce74 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc239", - "generation": 200, + "release": "0.1.0~rc244", + "generation": 201, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "e54a28744253d220a44119ee700854fdf76c3e9d" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "a7d2427518d847c0e386d53ba839f5ec33855f7c", "tag": "0.1.0-rc.239" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "3f484b203564ac310437ef16735a43b4dbce51d4" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.86", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.86.tgz", "sha256": "a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, @@ -28,7 +28,7 @@ "components": [ { "componentId": "api", "release": "0.8.0~rc81-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/component-release.json", "sha256": "347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/compose.yml", "sha256": "73ee7348a8ec8282f84e75d8ff000cc1e4fd5ad19c2d95bd1af6fdf29b3b85d9" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, - { "componentId": "agent", "release": "0.13.0~rc42-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/component-release.json", "sha256": "2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.42/compose.yml", "sha256": "b7171fecd6ef59f06a5ea0a04a5eeef6cbe4e94b11830cbf919524e237d5e258" } }] }, + { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 718f41b3..807e67cb 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-200 +release: development-201 components: - - { id: deployment, version: 0.1.0-rc.239, commit: a7d2427518d847c0e386d53ba839f5ec33855f7c, digest: 'sha256:ce158a9c9bd5c47f18be9a93869701aac8478bb299d2e045a61c1f37278b92d8', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.239/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } - { id: sdk, version: 0.13.0-rc.86, commit: 62c750ce77e2a4f2e0c0c73a4344c293d7bbef47, digest: 'sha256:a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.86' } - { id: cli, version: 0.13.0-rc.59, commit: 8a0f1585a27eaea8c992e836d14aff890a578780, digest: 'sha256:81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.59' } - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - - { id: agent, version: 0.13.0-rc.42, commit: 99b6b621cdbaf880d3fa0d8312dea7d62e58e692, digest: 'sha256:2bd6640fbbfb9c59f3f0671716cf95aa50c22e88d7d49b5750485bbedd4d700a', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.42' } + - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:fcb68431ce08dcd9a4073bf99e9a545dec8b3d8eb7359f2d3cd54f1e14b71fd6' +digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' From fa9d82525962344105958ff3ea31697c8e929895 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 09:27:04 -0400 Subject: [PATCH 204/501] chore: select canonical provider enrollment CLI for generation 202 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f18061ce..10d0169d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } +integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bc1fe332..f490a86a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } +integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e507ce74..ab0a230e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc244", - "generation": 201, + "generation": 202, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3f484b203564ac310437ef16735a43b4dbce51d4" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "1dc9ad0ac885dbb77c636681dcece78f3c292997" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.86", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.86.tgz", "sha256": "a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.59", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.59.tgz", "sha256": "81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 807e67cb..6ee672ad 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-201 +release: development-202 components: - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.86, commit: 62c750ce77e2a4f2e0c0c73a4344c293d7bbef47, digest: 'sha256:a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.86' } - - { id: cli, version: 0.13.0-rc.59, commit: 8a0f1585a27eaea8c992e836d14aff890a578780, digest: 'sha256:81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.59' } + - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } + - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' +digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' From 87d91000590877b3e57e703a766f55ee29b663ca Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 09:28:42 -0400 Subject: [PATCH 205/501] chore: select canonical provider enrollment CLI for generation 202 (#408) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f18061ce..10d0169d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } +integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bc1fe332..f490a86a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' } +integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e507ce74..ab0a230e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc244", - "generation": 201, + "generation": 202, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "3f484b203564ac310437ef16735a43b4dbce51d4" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "1dc9ad0ac885dbb77c636681dcece78f3c292997" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.86", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.86.tgz", "sha256": "a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.59", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.59.tgz", "sha256": "81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 807e67cb..6ee672ad 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-201 +release: development-202 components: - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.86, commit: 62c750ce77e2a4f2e0c0c73a4344c293d7bbef47, digest: 'sha256:a773df9e504ea896d9edfbaeb30961dd356be25fe740b0809a43a1c260a3b78e', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.86' } - - { id: cli, version: 0.13.0-rc.59, commit: 8a0f1585a27eaea8c992e836d14aff890a578780, digest: 'sha256:81ba10f6ff14d9ab9dda6e88e710852d1fc8fe4cf7dad9cc5a15224f577eeacd', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.59' } + - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } + - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } @@ -11,4 +11,4 @@ components: - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:c5f360cb2c4bb197309ac740be0ee304a0f65991343ef532baca0682f977917a' +digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' From 077f72601b120bdb9eb4dbca876b53322d64db5a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 10:49:14 -0400 Subject: [PATCH 206/501] release: compose API rc83 for generation203 host acceptance (#409) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 10d0169d..68b049e2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } +integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index f490a86a..4bcbbd88 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } +integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ab0a230e..f3567ae4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc244", - "generation": 202, + "release": "0.1.0~rc249", + "generation": 203, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "1dc9ad0ac885dbb77c636681dcece78f3c292997" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "87d91000590877b3e57e703a766f55ee29b663ca" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.83", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/treeseed-api-0.8.0-rc.83.tgz", "sha256": "ed01534420c6b2f3b1843747e19a5705baff412ecb20da0d5bd0557169ca2249" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc81-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/component-release.json", "sha256": "347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/compose.yml", "sha256": "73ee7348a8ec8282f84e75d8ff000cc1e4fd5ad19c2d95bd1af6fdf29b3b85d9" } }] }, + { "componentId": "api", "release": "0.8.0~rc83-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/component-release.json", "sha256": "488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/compose.yml", "sha256": "0b64b1e18393de78ff474efedd6a83f1815b6be0fbd015c8fa97dfaa03afcc7d" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6ee672ad..b498865c 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-202 +release: development-203 components: - - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } + - { id: api, version: 0.8.0-rc.83, commit: 9a88b5a16de6cfce58cf8c0a6a9c526ff6147861, digest: 'sha256:488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.83' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' +digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' From 25e549005c0f0ac800cd00c3b7542717cc48c51b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 10:51:11 -0400 Subject: [PATCH 207/501] release: compose API rc83 for generation203 host acceptance (#409) (#410) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 10d0169d..68b049e2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } +integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index f490a86a..4bcbbd88 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' } +integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ab0a230e..f3567ae4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc244", - "generation": 202, + "release": "0.1.0~rc249", + "generation": 203, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "1dc9ad0ac885dbb77c636681dcece78f3c292997" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "4a1b5d49db05b7d5019921188400536a94d4b2e8", "tag": "0.1.0-rc.244" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "87d91000590877b3e57e703a766f55ee29b663ca" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.81", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/treeseed-api-0.8.0-rc.81.tgz", "sha256": "94486a79e2161eb169e830ea065795f901f99be553da62f1cf203b2236a487c1" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.83", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/treeseed-api-0.8.0-rc.83.tgz", "sha256": "ed01534420c6b2f3b1843747e19a5705baff412ecb20da0d5bd0557169ca2249" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc81-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/component-release.json", "sha256": "347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.81/compose.yml", "sha256": "73ee7348a8ec8282f84e75d8ff000cc1e4fd5ad19c2d95bd1af6fdf29b3b85d9" } }] }, + { "componentId": "api", "release": "0.8.0~rc83-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/component-release.json", "sha256": "488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/compose.yml", "sha256": "0b64b1e18393de78ff474efedd6a83f1815b6be0fbd015c8fa97dfaa03afcc7d" } }] }, { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6ee672ad..b498865c 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-202 +release: development-203 components: - - { id: deployment, version: 0.1.0-rc.244, commit: 4a1b5d49db05b7d5019921188400536a94d4b2e8, digest: 'sha256:6c10619397b62130629c7746084f27c64b04db156fbc808248be41b466306a28', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.244/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.81, commit: e157a5cc600bda6315e171b67e0cf56c0e42a844, digest: 'sha256:347a35bc4dcc9b50cc5709f74fe8b4dd68cf3874c301b599a4c2ca59396d7637', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.81' } + - { id: api, version: 0.8.0-rc.83, commit: 9a88b5a16de6cfce58cf8c0a6a9c526ff6147861, digest: 'sha256:488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.83' } - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:3c47f20db0bb116032d1ef833e41bf3e1f258082a5c9ea653279b5366ab3857b' +digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' From b720f792990bb9957d7c276dfa5c6772d5df1367 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 10:57:57 -0400 Subject: [PATCH 208/501] release: pair Admin rc27 with API rc83 in generation204 (#409) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 68b049e2..4d4587b4 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } +integration: { id: development, digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 4bcbbd88..bf41f60c 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } +integration: { id: development, digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f3567ae4..5b7df15e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc249", - "generation": 203, + "generation": 204, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "87d91000590877b3e57e703a766f55ee29b663ca" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "25e549005c0f0ac800cd00c3b7542717cc48c51b" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.83", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/treeseed-api-0.8.0-rc.83.tgz", "sha256": "ed01534420c6b2f3b1843747e19a5705baff412ecb20da0d5bd0557169ca2249" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.27", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/treeseed-admin-0.12.59-rc.27.tgz", "sha256": "6b00cf12afb94aa63b1eb88cf1014cc1f74d636969df3aadbbfab9990fc92d7f" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc83-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/component-release.json", "sha256": "488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/compose.yml", "sha256": "0b64b1e18393de78ff474efedd6a83f1815b6be0fbd015c8fa97dfaa03afcc7d" } }] }, - { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, + { "componentId": "admin", "release": "0.12.59~rc27-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/component-release.json", "sha256": "fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/compose.yml", "sha256": "ffb431946a03c464c24b9306a113885ebf5eafe502a0f98c1aa1c5529f85cc16" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index b498865c..c460204d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-203 +release: development-204 components: - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.83, commit: 9a88b5a16de6cfce58cf8c0a6a9c526ff6147861, digest: 'sha256:488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.83' } - - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } + - { id: admin, version: 0.12.59-rc.27, commit: 695fcd28f1e75c9de52b756eea2ec8df14a1d3e5, digest: 'sha256:fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.27' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' +digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' From c37ffaeb9540fea59eab6e1ab012bf545971147f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 11:14:50 -0400 Subject: [PATCH 209/501] release: include API rc84 managed-library authority in generation204 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 4 ++-- config/integrations/development.yaml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 4d4587b4..0be5d584 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' } +integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bf41f60c..6bd93c39 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' } +integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 5b7df15e..2820ae5a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -8,7 +8,7 @@ "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.83", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/treeseed-api-0.8.0-rc.83.tgz", "sha256": "ed01534420c6b2f3b1843747e19a5705baff412ecb20da0d5bd0557169ca2249" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.27", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/treeseed-admin-0.12.59-rc.27.tgz", "sha256": "6b00cf12afb94aa63b1eb88cf1014cc1f74d636969df3aadbbfab9990fc92d7f" } }, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc83-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/component-release.json", "sha256": "488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/compose.yml", "sha256": "0b64b1e18393de78ff474efedd6a83f1815b6be0fbd015c8fa97dfaa03afcc7d" } }] }, + { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, { "componentId": "admin", "release": "0.12.59~rc27-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/component-release.json", "sha256": "fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/compose.yml", "sha256": "ffb431946a03c464c24b9306a113885ebf5eafe502a0f98c1aa1c5529f85cc16" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index c460204d..57ae9d9f 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -4,11 +4,11 @@ components: - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.83, commit: 9a88b5a16de6cfce58cf8c0a6a9c526ff6147861, digest: 'sha256:488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.83' } + - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - { id: admin, version: 0.12.59-rc.27, commit: 695fcd28f1e75c9de52b756eea2ec8df14a1d3e5, digest: 'sha256:fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.27' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:50a37ba5b2856dc03a47e324ba13a027490ce35ea732e28871c1f326db55a847' +digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' From 309b34a07c42b95eb2ecb2bb92375c6d27984d5c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 11:15:45 -0400 Subject: [PATCH 210/501] release: pair Admin rc27 and API rc84 for complete managed-host custody (#411) * release: pair Admin rc27 with API rc83 in generation204 (#409) * release: include API rc84 managed-library authority in generation204 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 68b049e2..0be5d584 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } +integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 4bcbbd88..6bd93c39 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' } +integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f3567ae4..2820ae5a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc249", - "generation": 203, + "generation": 204, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "87d91000590877b3e57e703a766f55ee29b663ca" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "25e549005c0f0ac800cd00c3b7542717cc48c51b" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.83", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/treeseed-api-0.8.0-rc.83.tgz", "sha256": "ed01534420c6b2f3b1843747e19a5705baff412ecb20da0d5bd0557169ca2249" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.26", "artifact": { "url": "https://registry.npmjs.org/@treeseed/admin/-/admin-0.12.59-rc.26.tgz", "sha256": "cd4ff8dc53573c25f9bdc325d24898be83144254caa07fe84e78194f3c588c4e" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.27", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/treeseed-admin-0.12.59-rc.27.tgz", "sha256": "6b00cf12afb94aa63b1eb88cf1014cc1f74d636969df3aadbbfab9990fc92d7f" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc83-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/component-release.json", "sha256": "488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.83/compose.yml", "sha256": "0b64b1e18393de78ff474efedd6a83f1815b6be0fbd015c8fa97dfaa03afcc7d" } }] }, - { "componentId": "admin", "release": "0.12.59~rc26-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/component-release.json", "sha256": "0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.26/compose.yml", "sha256": "3d66f71772eaaf57b0e52b150c2b393957090d0bd7162160b1635e41f1fe0c80" } }] }, + { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, + { "componentId": "admin", "release": "0.12.59~rc27-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/component-release.json", "sha256": "fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/compose.yml", "sha256": "ffb431946a03c464c24b9306a113885ebf5eafe502a0f98c1aa1c5529f85cc16" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index b498865c..57ae9d9f 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-203 +release: development-204 components: - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.83, commit: 9a88b5a16de6cfce58cf8c0a6a9c526ff6147861, digest: 'sha256:488047b2b85f3021814ed0df2525c636cb6a2a3db6956f0cfe3bb087a3e90da9', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.83' } - - { id: admin, version: 0.12.59-rc.26, commit: cbbf24febb2abe8915bdc2227bc73c740ca7491f, digest: 'sha256:0dedbde5cc52ca6297b0d79ea4aacc4cd821214790e0ba6401ae764663c25534', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.26' } + - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } + - { id: admin, version: 0.12.59-rc.27, commit: 695fcd28f1e75c9de52b756eea2ec8df14a1d3e5, digest: 'sha256:fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.27' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:4d3e322a155cf39bf1e59bf3d8767c339101e9b54f15e2fbeafcc8b0de8172d7' +digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' From f3c3430dab214d4142ddcd2c63aeef3f5f1feaa6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 12:31:58 -0400 Subject: [PATCH 211/501] release: select Admin28 Services repair in generation205 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0be5d584..ec5a942a 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } +integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 6bd93c39..34d18816 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } +integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 2820ae5a..40144558 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc249", - "generation": 204, + "release": "0.1.0~rc251", + "generation": 205, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "25e549005c0f0ac800cd00c3b7542717cc48c51b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "309b34a07c42b95eb2ecb2bb92375c6d27984d5c" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.27", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/treeseed-admin-0.12.59-rc.27.tgz", "sha256": "6b00cf12afb94aa63b1eb88cf1014cc1f74d636969df3aadbbfab9990fc92d7f" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.28", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/treeseed-admin-0.12.59-rc.28.tgz", "sha256": "7834041c8f5d467beb8aeaba092bd0d90ce2903fabc4f0d08b61dfdf5390de85" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc27-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/component-release.json", "sha256": "fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/compose.yml", "sha256": "ffb431946a03c464c24b9306a113885ebf5eafe502a0f98c1aa1c5529f85cc16" } }] }, + { "componentId": "admin", "release": "0.12.59~rc28-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/component-release.json", "sha256": "b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/compose.yml", "sha256": "bc7e17a9318acb0af48e71ef43813ee4bded60bf9e917da7ee9ca632b9ea3d13" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 57ae9d9f..4c8705d4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-204 +release: development-205 components: - - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.27, commit: 695fcd28f1e75c9de52b756eea2ec8df14a1d3e5, digest: 'sha256:fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.27' } + - { id: admin, version: 0.12.59-rc.28, commit: 22e4436c53f88c73b80f22c890746772189358b1, digest: 'sha256:b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.28' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' +digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' From 5703eca232263a0c620a92e35e30c4b9908c04f4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 12:33:15 -0400 Subject: [PATCH 212/501] release: select Admin28 Services repair in generation205 (#412) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0be5d584..ec5a942a 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } +integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 6bd93c39..34d18816 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' } +integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 2820ae5a..40144558 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc249", - "generation": 204, + "release": "0.1.0~rc251", + "generation": 205, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "25e549005c0f0ac800cd00c3b7542717cc48c51b" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "82c4f7a1455bd3cd33e60e62e556831930910398", "tag": "0.1.0-rc.249" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "309b34a07c42b95eb2ecb2bb92375c6d27984d5c" }, + "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.27", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/treeseed-admin-0.12.59-rc.27.tgz", "sha256": "6b00cf12afb94aa63b1eb88cf1014cc1f74d636969df3aadbbfab9990fc92d7f" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.28", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/treeseed-admin-0.12.59-rc.28.tgz", "sha256": "7834041c8f5d467beb8aeaba092bd0d90ce2903fabc4f0d08b61dfdf5390de85" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc27-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/component-release.json", "sha256": "fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.27/compose.yml", "sha256": "ffb431946a03c464c24b9306a113885ebf5eafe502a0f98c1aa1c5529f85cc16" } }] }, + { "componentId": "admin", "release": "0.12.59~rc28-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/component-release.json", "sha256": "b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/compose.yml", "sha256": "bc7e17a9318acb0af48e71ef43813ee4bded60bf9e917da7ee9ca632b9ea3d13" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 57ae9d9f..4c8705d4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-204 +release: development-205 components: - - { id: deployment, version: 0.1.0-rc.249, commit: 82c4f7a1455bd3cd33e60e62e556831930910398, digest: 'sha256:36b7a3f933f3b597ae9468e82598e5c7f678d660d0584675401ca205728e733e', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.249/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.27, commit: 695fcd28f1e75c9de52b756eea2ec8df14a1d3e5, digest: 'sha256:fcda2026d13b3ee389e6499fa648dd1ee44cb22753dda5a23934a3fef8eee7c4', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.27' } + - { id: admin, version: 0.12.59-rc.28, commit: 22e4436c53f88c73b80f22c890746772189358b1, digest: 'sha256:b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.28' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:8c8d119c0fce5d946c23af45038a77c5386e7a413c7cf4e79fb8b9da6558e9e5' +digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' From 2f929753ebca9d5523ffe834b95521f2551760dd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 13:55:21 -0400 Subject: [PATCH 213/501] release: select simplified Admin29 and UI14 service setup in generation206 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ec5a942a..5b3e9b4d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } +integration: { id: development, digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 34d18816..6519fc53 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' } +integration: { id: development, digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 40144558..91923d78 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 205, + "generation": 206, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "309b34a07c42b95eb2ecb2bb92375c6d27984d5c" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "5703eca232263a0c620a92e35e30c4b9908c04f4" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.12", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.12.tgz", "sha256": "74ef561f26bbb28dced2c2ca0200e4d784a8b93a3a8febf38c2da70b6837d3e3" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.14.tgz", "sha256": "ff18829507e3ffeffb0bc01c20eb95556df9de158efd655492ab271a96270cda" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.28", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/treeseed-admin-0.12.59-rc.28.tgz", "sha256": "7834041c8f5d467beb8aeaba092bd0d90ce2903fabc4f0d08b61dfdf5390de85" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.29", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/treeseed-admin-0.12.59-rc.29.tgz", "sha256": "26d4f447f2d8e13f83a5e08bf3ef24269337fe42f6ce062cbdf77a0c0c11d2b5" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc28-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/component-release.json", "sha256": "b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.28/compose.yml", "sha256": "bc7e17a9318acb0af48e71ef43813ee4bded60bf9e917da7ee9ca632b9ea3d13" } }] }, + { "componentId": "admin", "release": "0.12.59~rc29-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/component-release.json", "sha256": "40ee55f135452a274dde04475cdbd03d847920b21c7d19fc07322cb1342a84c3" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/compose.yml", "sha256": "bf62df614b0208605a58848fd33652af24a0b80244d0aaae5e640ff6ed397224" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 4c8705d4..19573a4a 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-205 +release: development-206 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.28, commit: 22e4436c53f88c73b80f22c890746772189358b1, digest: 'sha256:b78d8245a2e897413ba4321239c72c1886dcd22d9dff37e045c90003a6457e1e', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.28' } + - { id: admin, version: 0.12.59-rc.29, commit: b92f3a832a0434d4d6d05fa94346e4f7c1bdfe38, digest: 'sha256:40ee55f135452a274dde04475cdbd03d847920b21c7d19fc07322cb1342a84c3', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.29' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:c90291ffaec034e494867f155c12ef4e98ec8089d667053a88699e714cec5d41' +digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' From cdf8402b69273a92ca133d8ae9724cf1aa1523e5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 15:07:36 -0400 Subject: [PATCH 214/501] Compose full-width service wizard in generation 207 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 5b3e9b4d..7e9c34fc 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' } +integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 6519fc53..37a2ece1 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' } +integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 91923d78..b44ef56b 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 206, + "generation": 207, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "5703eca232263a0c620a92e35e30c4b9908c04f4" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "005332f44279d02f63c35a66b01de464d6e6cf8a" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.14", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.14.tgz", "sha256": "ff18829507e3ffeffb0bc01c20eb95556df9de158efd655492ab271a96270cda" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.15.tgz", "sha256": "47b65e1d0c6a38e49ce48577e2024ebdceef9276f0f8024a6943d26eedd0704d" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.29", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/treeseed-admin-0.12.59-rc.29.tgz", "sha256": "26d4f447f2d8e13f83a5e08bf3ef24269337fe42f6ce062cbdf77a0c0c11d2b5" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.30", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/treeseed-admin-0.12.59-rc.30.tgz", "sha256": "f18c50cc5ce0d7c2dbf805954aaf000c631267f3ca72d97434f91f69e9eda097" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc29-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/component-release.json", "sha256": "40ee55f135452a274dde04475cdbd03d847920b21c7d19fc07322cb1342a84c3" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.29/compose.yml", "sha256": "bf62df614b0208605a58848fd33652af24a0b80244d0aaae5e640ff6ed397224" } }] }, + { "componentId": "admin", "release": "0.12.59~rc30-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/component-release.json", "sha256": "b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/compose.yml", "sha256": "d3d6fd410ef8c47a2d4b8bf9133843408f04be155bc82dfadcdfdf7bb6e798c2" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 19573a4a..390b7afb 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-206 +release: development-207 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.29, commit: b92f3a832a0434d4d6d05fa94346e4f7c1bdfe38, digest: 'sha256:40ee55f135452a274dde04475cdbd03d847920b21c7d19fc07322cb1342a84c3', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.29' } + - { id: admin, version: 0.12.59-rc.30, commit: adb00cc53be95c3eb89567ffc097a3a989e2b0fe, digest: 'sha256:b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.30' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:41cb77b8d5aaeee9cb7cc5a19e7a1c9613a519da89ef2740795f07e59123687a' +digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' From c9f083ecbabc7254f14fb33ef90399348687d448 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 16:12:11 -0400 Subject: [PATCH 215/501] fix(integration): activate service save and theme corrections generation208 --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7e9c34fc..78191dc0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } +integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 37a2ece1..65f5eadf 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } +integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index b44ef56b..38aad5c0 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 207, + "generation": 208, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "005332f44279d02f63c35a66b01de464d6e6cf8a" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6c1f3b936b0369b08f25d4d811fad6bb55270f9c" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.15.tgz", "sha256": "47b65e1d0c6a38e49ce48577e2024ebdceef9276f0f8024a6943d26eedd0704d" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.16.tgz", "sha256": "5fa9ac50fbc4e63ed2dda19925f682a2a68f34cb0bf1d9abf3fa09e8ba564668" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.30", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/treeseed-admin-0.12.59-rc.30.tgz", "sha256": "f18c50cc5ce0d7c2dbf805954aaf000c631267f3ca72d97434f91f69e9eda097" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.31", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/treeseed-admin-0.12.59-rc.31.tgz", "sha256": "23fcd38afea065f901a9542bf4dc0fcf2dba6741cf7cba80562ffc8f21bcb206" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc30-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/component-release.json", "sha256": "b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/compose.yml", "sha256": "d3d6fd410ef8c47a2d4b8bf9133843408f04be155bc82dfadcdfdf7bb6e798c2" } }] }, + { "componentId": "admin", "release": "0.12.59~rc31-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/component-release.json", "sha256": "b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/compose.yml", "sha256": "532a249492f14139160b4a5ff0213e3d76a794b764931e7f17de271c3a28ef37" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 390b7afb..5a930391 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-207 +release: development-208 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.30, commit: adb00cc53be95c3eb89567ffc097a3a989e2b0fe, digest: 'sha256:b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.30' } + - { id: admin, version: 0.12.59-rc.31, commit: 4890bed2675eed6ec6f4240f405b116e9b363f71, digest: 'sha256:b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.31' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' +digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' From 123ff86cb3b12814dba42e0a522e5f57236d4b76 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 16:13:07 -0400 Subject: [PATCH 216/501] fix(integration): activate service save and theme corrections generation208 (#418) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7e9c34fc..78191dc0 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } +integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 37a2ece1..65f5eadf 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' } +integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index b44ef56b..38aad5c0 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 207, + "generation": 208, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "005332f44279d02f63c35a66b01de464d6e6cf8a" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "6c1f3b936b0369b08f25d4d811fad6bb55270f9c" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.15.tgz", "sha256": "47b65e1d0c6a38e49ce48577e2024ebdceef9276f0f8024a6943d26eedd0704d" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.16.tgz", "sha256": "5fa9ac50fbc4e63ed2dda19925f682a2a68f34cb0bf1d9abf3fa09e8ba564668" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.30", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/treeseed-admin-0.12.59-rc.30.tgz", "sha256": "f18c50cc5ce0d7c2dbf805954aaf000c631267f3ca72d97434f91f69e9eda097" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.31", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/treeseed-admin-0.12.59-rc.31.tgz", "sha256": "23fcd38afea065f901a9542bf4dc0fcf2dba6741cf7cba80562ffc8f21bcb206" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc30-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/component-release.json", "sha256": "b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.30/compose.yml", "sha256": "d3d6fd410ef8c47a2d4b8bf9133843408f04be155bc82dfadcdfdf7bb6e798c2" } }] }, + { "componentId": "admin", "release": "0.12.59~rc31-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/component-release.json", "sha256": "b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/compose.yml", "sha256": "532a249492f14139160b4a5ff0213e3d76a794b764931e7f17de271c3a28ef37" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 390b7afb..5a930391 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-207 +release: development-208 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.30, commit: adb00cc53be95c3eb89567ffc097a3a989e2b0fe, digest: 'sha256:b1f0b2a89c0aa7b6a1174c19ebb0ae9e9a2f3137d223e31f5a2f002658c18493', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.30' } + - { id: admin, version: 0.12.59-rc.31, commit: 4890bed2675eed6ec6f4240f405b116e9b363f71, digest: 'sha256:b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.31' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:65128b716bd37cb86c8599d1938b17db4376ad95b31b1069e3783d0164dbf942' +digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' From bcafefa76f2efb3d37d0dd0c9fbcb98efd924841 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 23:42:27 -0400 Subject: [PATCH 217/501] fix(seed): declare existing Team Library in complete blueprint (#419) --- .github/workflows/verify.yml | 4 ++-- seeds/treeseed.yaml | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index ffc5c061..097001bf 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.54 - with: { version: 0.13.0-rc.54 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.62 + with: { version: 0.13.0-rc.62 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index a64dc62a..8a3e74cf 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 6 +version: 7 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:e3613e0ffeee07fd9ccd461f756c6fe9490069a8d8ceaa155bf1b247963ed57d +digest: sha256:928477997d71d9f462de94341b9c761c5acd6667e44e1aa9bb4fece0d63abb39 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -11,6 +11,7 @@ resources: # personal identities and host-specific membership bootstrap out of Platform. memberships: [] projects: + - { key: 'project:treeseed/team', team: 'team:treeseed', slug: team, name: Team Library, description: Shared TreeSeed team knowledge and context., kind: content, libraryRepository: 'repository:treeseed/team-library' } - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Debian bootstrap and host-manager integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } @@ -28,6 +29,7 @@ resources: - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service with independent hosted-deployment authority., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - { key: 'project:treeseed/skill', team: 'team:treeseed', slug: skill, name: TreeSeed Skill, description: Versioned agent skill for operating the TreeSeed ecosystem., kind: skill, primaryRepository: 'repository:treeseed/skill', libraryRepository: 'repository:treeseed/skill-library' } repositories: + - { key: 'repository:treeseed/team-library', project: 'project:treeseed/team', role: library, provider: github, owner: treeseed-ai, name: team-library, gitUrl: 'https://github.com/treeseed-ai/team-library.git', defaultBranch: main, repositoryPolicy: { visibility: private, lifecycle: adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [] }, metadata: { libraryRoot: '.', synchronizedRefs: [main, staging] } } - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, repositoryPolicy: *public_repo } From d7e93b775a424aacc7eefb7d4e0960cd6e0efd8d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 5 Sep 2026 23:43:36 -0400 Subject: [PATCH 218/501] fix(seed): declare existing Team Library in complete blueprint (#419) (#420) --- .github/workflows/verify.yml | 4 ++-- seeds/treeseed.yaml | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index ffc5c061..097001bf 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.54 - with: { version: 0.13.0-rc.54 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.62 + with: { version: 0.13.0-rc.62 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index a64dc62a..8a3e74cf 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 6 +version: 7 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:e3613e0ffeee07fd9ccd461f756c6fe9490069a8d8ceaa155bf1b247963ed57d +digest: sha256:928477997d71d9f462de94341b9c761c5acd6667e44e1aa9bb4fece0d63abb39 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -11,6 +11,7 @@ resources: # personal identities and host-specific membership bootstrap out of Platform. memberships: [] projects: + - { key: 'project:treeseed/team', team: 'team:treeseed', slug: team, name: Team Library, description: Shared TreeSeed team knowledge and context., kind: content, libraryRepository: 'repository:treeseed/team-library' } - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Debian bootstrap and host-manager integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } - { key: 'project:treeseed/api', team: 'team:treeseed', slug: api, name: TreeSeed API, description: Authoritative TreeSeed control plane., kind: package, primaryRepository: 'repository:treeseed/api', libraryRepository: 'repository:treeseed/api-library', metadata: { packageId: '@treeseed/api' } } @@ -28,6 +29,7 @@ resources: - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service with independent hosted-deployment authority., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - { key: 'project:treeseed/skill', team: 'team:treeseed', slug: skill, name: TreeSeed Skill, description: Versioned agent skill for operating the TreeSeed ecosystem., kind: skill, primaryRepository: 'repository:treeseed/skill', libraryRepository: 'repository:treeseed/skill-library' } repositories: + - { key: 'repository:treeseed/team-library', project: 'project:treeseed/team', role: library, provider: github, owner: treeseed-ai, name: team-library, gitUrl: 'https://github.com/treeseed-ai/team-library.git', defaultBranch: main, repositoryPolicy: { visibility: private, lifecycle: adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [] }, metadata: { libraryRoot: '.', synchronizedRefs: [main, staging] } } - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, repositoryPolicy: *public_repo } From 9a8cec9123c513d699cd434c5bcec33cb21d6204 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 6 Sep 2026 00:07:50 -0400 Subject: [PATCH 219/501] chore(release): compose generation209 seed-library and service discovery --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 18 +++++++++--------- config/integrations/development.yaml | 12 ++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 78191dc0..931e15d8 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } +integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 65f5eadf..e2ef50df 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } +integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 38aad5c0..56b490e4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 208, + "generation": 209, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6c1f3b936b0369b08f25d4d811fad6bb55270f9c" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d7e93b775a424aacc7eefb7d4e0960cd6e0efd8d" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.16.tgz", "sha256": "5fa9ac50fbc4e63ed2dda19925f682a2a68f34cb0bf1d9abf3fa09e8ba564668" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.91", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.91.tgz", "sha256": "6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.85", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/treeseed-api-0.8.0-rc.85.tgz", "sha256": "06f52809402004609876f32b11d3e3d997e838ea96d544af48e0a09d550358f3" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.17.tgz", "sha256": "56ee2439822dcf62d88b9f7071449a9c11015fd035fe8e5b82d8ee47b2c9764b" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.31", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/treeseed-admin-0.12.59-rc.31.tgz", "sha256": "23fcd38afea065f901a9542bf4dc0fcf2dba6741cf7cba80562ffc8f21bcb206" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.32", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/treeseed-admin-0.12.59-rc.32.tgz", "sha256": "b93786854cba8bb3d03a0a5da5d7cab8a0ce8600ae196ec9def2dc6a75d09ccf" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.62", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.62.tgz", "sha256": "659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc31-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/component-release.json", "sha256": "b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/compose.yml", "sha256": "532a249492f14139160b4a5ff0213e3d76a794b764931e7f17de271c3a28ef37" } }] }, + { "componentId": "api", "release": "0.8.0~rc85-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/component-release.json", "sha256": "c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/compose.yml", "sha256": "5a795002e1703133fa8463d4d40e61c9dc9577d58c14a382b3f34feda24720f7" } }] }, + { "componentId": "admin", "release": "0.12.59~rc32-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/component-release.json", "sha256": "6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/compose.yml", "sha256": "a8a6e9508b3027386f3fdf0dba6099ec2f5ba82f3f3832ddc0b4d8b27fbd8065" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5a930391..e0782e8d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-208 +release: development-209 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.31, commit: 4890bed2675eed6ec6f4240f405b116e9b363f71, digest: 'sha256:b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.31' } + - { id: sdk, version: 0.13.0-rc.91, commit: dcd44ccb686da6d3c32ea5bc826bffb1ae5dbf25, digest: 'sha256:6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.91' } + - { id: cli, version: 0.13.0-rc.62, commit: 98f2da703ec3cbba2c7c003f1f57107c36259f8b, digest: 'sha256:659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.62' } + - { id: api, version: 0.8.0-rc.85, commit: f6648fa41efcbcefba4b512442805afb1fe16a64, digest: 'sha256:c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.85' } + - { id: admin, version: 0.12.59-rc.32, commit: 231c7d4742e061b9ce912cbb2ec40e1817f62e09, digest: 'sha256:6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.32' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' +digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' From 2254039e270a8a7551e28a16d5f353dede78554c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 6 Sep 2026 00:09:02 -0400 Subject: [PATCH 220/501] chore(release): compose generation209 seed-library and service discovery (#421) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 18 +++++++++--------- config/integrations/development.yaml | 12 ++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 78191dc0..931e15d8 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } +integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 65f5eadf..e2ef50df 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' } +integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 38aad5c0..56b490e4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 208, + "generation": 209, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "6c1f3b936b0369b08f25d4d811fad6bb55270f9c" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "d7e93b775a424aacc7eefb7d4e0960cd6e0efd8d" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.89", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.89.tgz", "sha256": "85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.84", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/treeseed-api-0.8.0-rc.84.tgz", "sha256": "f37a43762055234cbb667debe2b68ab82e09617b437647bdbf59938e4f1ae463" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.16", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.16.tgz", "sha256": "5fa9ac50fbc4e63ed2dda19925f682a2a68f34cb0bf1d9abf3fa09e8ba564668" } }, + { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.91", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.91.tgz", "sha256": "6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0" } }, + { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.85", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/treeseed-api-0.8.0-rc.85.tgz", "sha256": "06f52809402004609876f32b11d3e3d997e838ea96d544af48e0a09d550358f3" } }, + { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.17.tgz", "sha256": "56ee2439822dcf62d88b9f7071449a9c11015fd035fe8e5b82d8ee47b2c9764b" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.31", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/treeseed-admin-0.12.59-rc.31.tgz", "sha256": "23fcd38afea065f901a9542bf4dc0fcf2dba6741cf7cba80562ffc8f21bcb206" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.32", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/treeseed-admin-0.12.59-rc.32.tgz", "sha256": "b93786854cba8bb3d03a0a5da5d7cab8a0ce8600ae196ec9def2dc6a75d09ccf" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.61", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.61.tgz", "sha256": "b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db" } }, + { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.62", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.62.tgz", "sha256": "659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc" } }, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc84-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/component-release.json", "sha256": "a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.84/compose.yml", "sha256": "025f07d7711fa1ac6582e70c3e1b21f70456ca1fec4f58397cfccb1e6ded1bb2" } }] }, - { "componentId": "admin", "release": "0.12.59~rc31-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/component-release.json", "sha256": "b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.31/compose.yml", "sha256": "532a249492f14139160b4a5ff0213e3d76a794b764931e7f17de271c3a28ef37" } }] }, + { "componentId": "api", "release": "0.8.0~rc85-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/component-release.json", "sha256": "c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/compose.yml", "sha256": "5a795002e1703133fa8463d4d40e61c9dc9577d58c14a382b3f34feda24720f7" } }] }, + { "componentId": "admin", "release": "0.12.59~rc32-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/component-release.json", "sha256": "6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/compose.yml", "sha256": "a8a6e9508b3027386f3fdf0dba6099ec2f5ba82f3f3832ddc0b4d8b27fbd8065" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 5a930391..e0782e8d 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-208 +release: development-209 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.89, commit: a792ed9e7315be6f8c623ec75a5f4b722b6c1737, digest: 'sha256:85a222d96963acd0a32092560aeb72d5cbe600c390cef6897c399999313193cc', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.89' } - - { id: cli, version: 0.13.0-rc.61, commit: 13f58a7be3c27ab7557edace2b1aabce0227df3b, digest: 'sha256:b79313aef1bb6a725bfa728db2b85db628462bbf0f0fd91402ed0ab6f05717db', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.61' } - - { id: api, version: 0.8.0-rc.84, commit: b2e58f62168ead67e49f4a2a15a0160823bbaf0b, digest: 'sha256:a1e1e16eaee33e775cc7256e6dc1ef6f6a0874bbd2d0f4612376429831907e30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.84' } - - { id: admin, version: 0.12.59-rc.31, commit: 4890bed2675eed6ec6f4240f405b116e9b363f71, digest: 'sha256:b4984528d1b9f692d791c620f03cdf03080a0ece3668f7f22567fee7fd247572', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.31' } + - { id: sdk, version: 0.13.0-rc.91, commit: dcd44ccb686da6d3c32ea5bc826bffb1ae5dbf25, digest: 'sha256:6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.91' } + - { id: cli, version: 0.13.0-rc.62, commit: 98f2da703ec3cbba2c7c003f1f57107c36259f8b, digest: 'sha256:659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.62' } + - { id: api, version: 0.8.0-rc.85, commit: f6648fa41efcbcefba4b512442805afb1fe16a64, digest: 'sha256:c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.85' } + - { id: admin, version: 0.12.59-rc.32, commit: 231c7d4742e061b9ce912cbb2ec40e1817f62e09, digest: 'sha256:6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.32' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:96eaa8c41f09aa0eeb5922cc00442b0af35c36026a508b20c1c72d08add1f255' +digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' From ab544f765ecd937d6d2da1c2af7b5abbb1d45b2d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 6 Sep 2026 00:33:33 -0400 Subject: [PATCH 221/501] fix(integration): select service navigation fix for generation 210 (#419) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 931e15d8..47c1b3cb 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } +integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e2ef50df..2d6e5a46 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } +integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 56b490e4..20231967 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 209, + "generation": 210, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d7e93b775a424aacc7eefb7d4e0960cd6e0efd8d" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "2254039e270a8a7551e28a16d5f353dede78554c" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.91", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.91.tgz", "sha256": "6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.85", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/treeseed-api-0.8.0-rc.85.tgz", "sha256": "06f52809402004609876f32b11d3e3d997e838ea96d544af48e0a09d550358f3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.17.tgz", "sha256": "56ee2439822dcf62d88b9f7071449a9c11015fd035fe8e5b82d8ee47b2c9764b" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.32", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/treeseed-admin-0.12.59-rc.32.tgz", "sha256": "b93786854cba8bb3d03a0a5da5d7cab8a0ce8600ae196ec9def2dc6a75d09ccf" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.33", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/treeseed-admin-0.12.59-rc.33.tgz", "sha256": "6e85f9dd48411aa011bd0212f35aee03f12dd746a00948d720f283a78b2da51a" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.62", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.62.tgz", "sha256": "659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc85-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/component-release.json", "sha256": "c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/compose.yml", "sha256": "5a795002e1703133fa8463d4d40e61c9dc9577d58c14a382b3f34feda24720f7" } }] }, - { "componentId": "admin", "release": "0.12.59~rc32-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/component-release.json", "sha256": "6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/compose.yml", "sha256": "a8a6e9508b3027386f3fdf0dba6099ec2f5ba82f3f3832ddc0b4d8b27fbd8065" } }] }, + { "componentId": "admin", "release": "0.12.59~rc33-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/component-release.json", "sha256": "de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/compose.yml", "sha256": "9d8bbc7aaedc63950fce023d06e512044e3ed1a6fc4fe5ff136d4208916fe908" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index e0782e8d..edafc96b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-209 +release: development-210 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.91, commit: dcd44ccb686da6d3c32ea5bc826bffb1ae5dbf25, digest: 'sha256:6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.91' } - { id: cli, version: 0.13.0-rc.62, commit: 98f2da703ec3cbba2c7c003f1f57107c36259f8b, digest: 'sha256:659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.62' } - { id: api, version: 0.8.0-rc.85, commit: f6648fa41efcbcefba4b512442805afb1fe16a64, digest: 'sha256:c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.85' } - - { id: admin, version: 0.12.59-rc.32, commit: 231c7d4742e061b9ce912cbb2ec40e1817f62e09, digest: 'sha256:6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.32' } + - { id: admin, version: 0.12.59-rc.33, commit: 1590afec3123e1c1c886fbdd65a820d1ff40e527, digest: 'sha256:de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.33' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' +digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' From b934c2317dcad742ccdd438654e036e784fd44d9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 6 Sep 2026 00:35:02 -0400 Subject: [PATCH 222/501] fix(integration): select service navigation fix for generation 210 (#419) (#422) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 8 ++++---- config/integrations/development.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 931e15d8..47c1b3cb 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } +integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e2ef50df..2d6e5a46 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' } +integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 56b490e4..20231967 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc251", - "generation": 209, + "generation": 210, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "d7e93b775a424aacc7eefb7d4e0960cd6e0efd8d" }, + "platform": { "repository": "treeseed-ai/platform", "commit": "2254039e270a8a7551e28a16d5f353dede78554c" }, "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, "hostPayloads": [ { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.91", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.91.tgz", "sha256": "6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0" } }, { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.85", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/treeseed-api-0.8.0-rc.85.tgz", "sha256": "06f52809402004609876f32b11d3e3d997e838ea96d544af48e0a09d550358f3" } }, { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.17.tgz", "sha256": "56ee2439822dcf62d88b9f7071449a9c11015fd035fe8e5b82d8ee47b2c9764b" } }, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.32", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/treeseed-admin-0.12.59-rc.32.tgz", "sha256": "b93786854cba8bb3d03a0a5da5d7cab8a0ce8600ae196ec9def2dc6a75d09ccf" } }, + { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.33", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/treeseed-admin-0.12.59-rc.33.tgz", "sha256": "6e85f9dd48411aa011bd0212f35aee03f12dd746a00948d720f283a78b2da51a" } }, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.62", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.62.tgz", "sha256": "659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc" } }, @@ -27,7 +27,7 @@ ], "components": [ { "componentId": "api", "release": "0.8.0~rc85-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/component-release.json", "sha256": "c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/compose.yml", "sha256": "5a795002e1703133fa8463d4d40e61c9dc9577d58c14a382b3f34feda24720f7" } }] }, - { "componentId": "admin", "release": "0.12.59~rc32-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/component-release.json", "sha256": "6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.32/compose.yml", "sha256": "a8a6e9508b3027386f3fdf0dba6099ec2f5ba82f3f3832ddc0b4d8b27fbd8065" } }] }, + { "componentId": "admin", "release": "0.12.59~rc33-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/component-release.json", "sha256": "de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/compose.yml", "sha256": "9d8bbc7aaedc63950fce023d06e512044e3ed1a6fc4fe5ff136d4208916fe908" } }] }, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index e0782e8d..edafc96b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,14 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-209 +release: development-210 components: - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - { id: sdk, version: 0.13.0-rc.91, commit: dcd44ccb686da6d3c32ea5bc826bffb1ae5dbf25, digest: 'sha256:6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.91' } - { id: cli, version: 0.13.0-rc.62, commit: 98f2da703ec3cbba2c7c003f1f57107c36259f8b, digest: 'sha256:659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.62' } - { id: api, version: 0.8.0-rc.85, commit: f6648fa41efcbcefba4b512442805afb1fe16a64, digest: 'sha256:c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.85' } - - { id: admin, version: 0.12.59-rc.32, commit: 231c7d4742e061b9ce912cbb2ec40e1817f62e09, digest: 'sha256:6b1614deef0eb9192bb78ac85c8f3266425c6742ce5ad226adea710db3b4c549', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.32' } + - { id: admin, version: 0.12.59-rc.33, commit: 1590afec3123e1c1c886fbdd65a820d1ff40e527, digest: 'sha256:de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.33' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:707582b23c3f4e4d9a9b14f05f760746d6031f1e1b5f2e00d491e28f4aa45100' +digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' From 4fe2a789e1553a2d3f650ccfda8a19437252f913 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 00:00:08 -0400 Subject: [PATCH 223/501] chore(composition): bind generation 211 release artifacts --- .github/workflows/verify.yml | 4 ++-- config/integrations/development.release.json | 24 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 097001bf..1acecb94 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -19,8 +19,8 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 with: { fetch-depth: 0 } - - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.62 - with: { version: 0.13.0-rc.62 } + - uses: treeseed-ai/cli/.github/actions/setup-cli@0.13.0-rc.63 + with: { version: 0.13.0-rc.63 } - run: trsd platform verify . --json - run: trsd platform verify . --profile core --json - run: trsd platform verify . --profile control-plane --profile capacity-provider --profile treeai --json diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 20231967..4e1a2d66 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc251", - "generation": 210, + "release": "0.1.0~rc259", + "generation": 211, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { "repository": "treeseed-ai/platform", "commit": "2254039e270a8a7551e28a16d5f353dede78554c" }, - "deployment": { "repository": "treeseed-ai/deployment", "commit": "47d67a9205bdc7578dec7a84e1b1030d24e2a813", "tag": "0.1.0-rc.251" }, + "platform": {"repository":"treeseed-ai/platform","commit":"b934c2317dcad742ccdd438654e036e784fd44d9"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"8d6e746acbb5384595788320399093c03981669a","tag":"0.1.0-rc.259"}, "hostPayloads": [ - { "id": "sdk", "packageName": "@treeseed/sdk", "version": "0.13.0-rc.91", "artifact": { "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.91.tgz", "sha256": "6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0" } }, - { "id": "api", "packageName": "@treeseed/api", "version": "0.8.0-rc.85", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/treeseed-api-0.8.0-rc.85.tgz", "sha256": "06f52809402004609876f32b11d3e3d997e838ea96d544af48e0a09d550358f3" } }, - { "id": "ui", "packageName": "@treeseed/ui", "version": "0.12.18-rc.17", "artifact": { "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.17.tgz", "sha256": "56ee2439822dcf62d88b9f7071449a9c11015fd035fe8e5b82d8ee47b2c9764b" } }, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.92","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.92.tgz","sha256":"86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.87","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/treeseed-api-0.8.0-rc.87.tgz","sha256":"3c7c80fe891e677d682978e2370e12aeb2203c80801c447815472fb5e52f63ba"}}, + {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - { "id": "admin", "packageName": "@treeseed/admin", "version": "0.12.59-rc.33", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/treeseed-admin-0.12.59-rc.33.tgz", "sha256": "6e85f9dd48411aa011bd0212f35aee03f12dd746a00948d720f283a78b2da51a" } }, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - { "id": "cli", "packageName": "@treeseed/cli", "version": "0.13.0-rc.62", "artifact": { "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.62.tgz", "sha256": "659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc" } }, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.63","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.63.tgz","sha256":"dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023"}}, { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,8 +26,8 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { "componentId": "api", "release": "0.8.0~rc85-1", "manifest": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/component-release.json", "sha256": "c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.85/compose.yml", "sha256": "5a795002e1703133fa8463d4d40e61c9dc9577d58c14a382b3f34feda24720f7" } }] }, - { "componentId": "admin", "release": "0.12.59~rc33-1", "manifest": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/component-release.json", "sha256": "de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.33/compose.yml", "sha256": "9d8bbc7aaedc63950fce023d06e512044e3ed1a6fc4fe5ff136d4208916fe908" } }] }, + {"componentId":"api","release":"0.8.0~rc87-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/component-release.json","sha256":"852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/compose.yml","sha256":"77dd7a126a960e7cc8ed19bcbad9503a449b4c70cc89c9c11619a723186fa541"}}]}, + {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } ], - "createdAt": "2026-09-03T11:33:43.000Z" + "createdAt": "2026-09-07T03:59:00.000Z" } From 74d4349fd4b8b66e550d35f3e10ef87d44661324 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 00:24:18 -0400 Subject: [PATCH 224/501] chore(composition): record published generation 211 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 15 ++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 47c1b3cb..70df8265 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } +integration: { id: development, digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2d6e5a46..f18801aa 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' } +integration: { id: development, digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index edafc96b..cd5a0801 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,14 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-210 +release: development-211 components: - - { id: deployment, version: 0.1.0-rc.251, commit: 47d67a9205bdc7578dec7a84e1b1030d24e2a813, digest: 'sha256:411b9558b890af9c224e59ca06cfab8c97a7540c983d297330f20876b31232af', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.251/exact-head.json' } - - { id: sdk, version: 0.13.0-rc.91, commit: dcd44ccb686da6d3c32ea5bc826bffb1ae5dbf25, digest: 'sha256:6cf4b1e1cdf818f8279c3668b994626b49f25794b9d6e4b8569b43f36135e1d0', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.91' } - - { id: cli, version: 0.13.0-rc.62, commit: 98f2da703ec3cbba2c7c003f1f57107c36259f8b, digest: 'sha256:659690305b4d8f66f8c270006620bd1d5d9d267b85c8f788e6266ad74e1ca5bc', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.62' } - - { id: api, version: 0.8.0-rc.85, commit: f6648fa41efcbcefba4b512442805afb1fe16a64, digest: 'sha256:c29b67eb7bc11eb4e737cb15a264e67eb1a66782c0f02994f7d2477128b92dc7', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.85' } - - { id: admin, version: 0.12.59-rc.33, commit: 1590afec3123e1c1c886fbdd65a820d1ff40e527, digest: 'sha256:de6cfac7954be019460c91ad111c9cf9e87c410b038310f3a9d081ba247ab5d3', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.33' } + - { id: deployment, version: 0.1.0-rc.259, commit: 8d6e746acbb5384595788320399093c03981669a, digest: 'sha256:b40492bc4cc43732cde2251fc51fa6be06bfd7c12405f2960e7104f3da6b9890', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.259/exact-head.json' } + - { id: sdk, version: 0.13.0-rc.92, commit: f59f99079b5e404e59a200ea68b4eb7efcc7bed2, digest: 'sha256:86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.92' } + - { id: cli, version: 0.13.0-rc.63, commit: c6e04cec70567c6aeeeee46a96669e2002ff2b05, digest: 'sha256:dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.63' } + - { id: api, version: 0.8.0-rc.87, commit: f127d337e2bf02cb4d2b916b9b38a62e7a775d2d, digest: 'sha256:852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.87' } + - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } -digest: 'sha256:1e8f22f53c69c3898857ea0d00d9a61a984d654fe5f9f8d8cce667fc4a5c810d' + - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } +digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' From 9d410592dc9e82a529e840b0fa95eacc4b81afd4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 01:13:35 -0400 Subject: [PATCH 225/501] chore(integration): select generation 212 Agent rc44 diagnostics --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 4e1a2d66..7cc11051 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc259", - "generation": 211, + "release": "0.1.0~rc260", + "generation": 212, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b934c2317dcad742ccdd438654e036e784fd44d9"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"8d6e746acbb5384595788320399093c03981669a","tag":"0.1.0-rc.259"}, + "platform": {"repository":"treeseed-ai/platform","commit":"fb6c7dbcf4c6f9b248ab65b190dc3ca3371d225b"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"cd3bc485a2a4378afc4ca3793f1bf500b7aaf466","tag":"0.1.0-rc.260"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.92","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.92.tgz","sha256":"86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.87","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/treeseed-api-0.8.0-rc.87.tgz","sha256":"3c7c80fe891e677d682978e2370e12aeb2203c80801c447815472fb5e52f63ba"}}, @@ -28,7 +28,7 @@ "components": [ {"componentId":"api","release":"0.8.0~rc87-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/component-release.json","sha256":"852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/compose.yml","sha256":"77dd7a126a960e7cc8ed19bcbad9503a449b4c70cc89c9c11619a723186fa541"}}]}, {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, - { "componentId": "agent", "release": "0.13.0~rc43-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/component-release.json", "sha256": "2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.43/compose.yml", "sha256": "a80bd9d4950e179a5891f3accfcfcbd2145d9a3d9f4259761013172f0a405a76" } }] }, + { "componentId": "agent", "release": "0.13.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.44/component-release.json", "sha256": "580d1a73afab964e74aa6b827a75d6f5286f1e81afba8534ba8dc520c0c93c9e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.44/compose.yml", "sha256": "ee2f799ee6c7162516776c7ccad2b2ace2396afcd73ac102ba1f98e203988c3e" } }] }, { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, From 70e79648e241d11ebb09bf3497a43a37b720ec57 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 01:18:47 -0400 Subject: [PATCH 226/501] chore(integration): record published generation 212 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 70df8265..1ad6a86f 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' } +integration: { id: development, digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index f18801aa..0d2b6ae8 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' } +integration: { id: development, digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index cd5a0801..3435fec7 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-211 +release: development-212 components: - - { id: deployment, version: 0.1.0-rc.259, commit: 8d6e746acbb5384595788320399093c03981669a, digest: 'sha256:b40492bc4cc43732cde2251fc51fa6be06bfd7c12405f2960e7104f3da6b9890', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.259/exact-head.json' } + - { id: deployment, version: 0.1.0-rc.260, commit: cd3bc485a2a4378afc4ca3793f1bf500b7aaf466, digest: 'sha256:550b88d073f27592d0e4450175a94ad032464d42904c9fcbf44185fbdedeca70', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.260/exact-head.json' } - { id: sdk, version: 0.13.0-rc.92, commit: f59f99079b5e404e59a200ea68b4eb7efcc7bed2, digest: 'sha256:86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.92' } - { id: cli, version: 0.13.0-rc.63, commit: c6e04cec70567c6aeeeee46a96669e2002ff2b05, digest: 'sha256:dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.63' } - { id: api, version: 0.8.0-rc.87, commit: f127d337e2bf02cb4d2b916b9b38a62e7a775d2d, digest: 'sha256:852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.87' } - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - - { id: agent, version: 0.13.0-rc.43, commit: e96088f8aae10b4b4cde171f0b84c4b186a2f2d2, digest: 'sha256:2fb685809d4a8a9609a53788b697a241bf1d9a30dad03455c976a392ddc5a950', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.43' } + - { id: agent, version: 0.13.0-rc.44, commit: c5145b3503af550ccc4250794537e1d6bb6da8e3, digest: 'sha256:580d1a73afab964e74aa6b827a75d6f5286f1e81afba8534ba8dc520c0c93c9e', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.44' } - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:7a171bf4eaf5ef5ce1477fc88a27a110f5f597e68f003bbce77f3de75a7469e6' +digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' From f5018c7898acee23f41b8e56ecb2ba4ed71a9808 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 04:26:05 -0400 Subject: [PATCH 227/501] chore(integration): compose generation 213 local acceptance fixes --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7cc11051..c955657e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,21 +1,21 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc260", - "generation": 212, + "release": "0.1.0~rc261", + "generation": 213, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"fb6c7dbcf4c6f9b248ab65b190dc3ca3371d225b"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"cd3bc485a2a4378afc4ca3793f1bf500b7aaf466","tag":"0.1.0-rc.260"}, + "platform": {"repository":"treeseed-ai/platform","commit":"8c360c4be42c62302869cedbc181c4bc2abeafd5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"c21e169fc3fa581761ac5a7f6c02c93601dd5ed7","tag":"0.1.0-rc.261"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.92","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.92.tgz","sha256":"86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.87","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/treeseed-api-0.8.0-rc.87.tgz","sha256":"3c7c80fe891e677d682978e2370e12aeb2203c80801c447815472fb5e52f63ba"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.88","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/treeseed-api-0.8.0-rc.88.tgz","sha256":"668fb2ff1d42f053659f3fab80d870be0ca8fe96a965dfe91ca752da791525c6"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.63","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.63.tgz","sha256":"dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023"}}, - { "id": "treedx", "packageName": "@treeseed/treedx", "version": "0.3.0-rc.15", "artifact": { "url": "https://registry.npmjs.org/@treeseed/treedx/-/treedx-0.3.0-rc.15.tgz", "sha256": "0f58bbfc5866270307800f5e0619baed28ff27c043520da471a104ec75053105" } }, + {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.16","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/treeseed-treedx-0.3.0-rc.16.tgz","sha256":"daedbef158d96cb8abd20ba7545728d6003730f5d43d3dd627a45672769519e2"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], @@ -26,10 +26,10 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc87-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/component-release.json","sha256":"852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.87/compose.yml","sha256":"77dd7a126a960e7cc8ed19bcbad9503a449b4c70cc89c9c11619a723186fa541"}}]}, + {"componentId":"api","release":"0.8.0~rc88-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/component-release.json","sha256":"97a0cd142de054745c1993b8baea48148c39c690cad7592466d5a84d620bb73b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/compose.yml","sha256":"5f8b70b586375b983627df1c9a377d0a61faf3f3a483debb7676fa92f50916e5"}}]}, {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, - { "componentId": "agent", "release": "0.13.0~rc44-1", "manifest": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.44/component-release.json", "sha256": "580d1a73afab964e74aa6b827a75d6f5286f1e81afba8534ba8dc520c0c93c9e" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.44/compose.yml", "sha256": "ee2f799ee6c7162516776c7ccad2b2ace2396afcd73ac102ba1f98e203988c3e" } }] }, - { "componentId": "treedx", "release": "0.3.0~rc15-1", "manifest": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/component-release.json", "sha256": "b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.15/compose.yml", "sha256": "c7635cc02c202da51c6430d6c7c58ec11e8e4dc1bf52e28f45bdd9a400b8b6e4" } }] }, + {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, + {"componentId":"treedx","release":"0.3.0~rc16-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/component-release.json","sha256":"ce6a0881f14b922d75486c96dd80e650dc34cb0c3d765f112235806693cc1709"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/compose.yml","sha256":"5cddb088665ad1b77431b1c363b43f8ca0bcaf9879dcad45f4f931ef5423b3ac"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, From ad82cd61751ae01b3e46d1871d59840c995654ee Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 04:32:30 -0400 Subject: [PATCH 228/501] chore(integration): record generation 213 published inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 1ad6a86f..0bf6951e 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' } +integration: { id: development, digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 0d2b6ae8..8d8e7f03 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' } +integration: { id: development, digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 3435fec7..56f9bb83 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-212 +release: development-213 components: - - { id: deployment, version: 0.1.0-rc.260, commit: cd3bc485a2a4378afc4ca3793f1bf500b7aaf466, digest: 'sha256:550b88d073f27592d0e4450175a94ad032464d42904c9fcbf44185fbdedeca70', artifact: 'https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.260/exact-head.json' } + - {"id":"deployment","version":"0.1.0-rc.261","commit":"c21e169fc3fa581761ac5a7f6c02c93601dd5ed7","digest":"sha256:c89d802cc72c853351934ab8755bebe685e08205514a9861612b84ea81515378","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.261/exact-head.json"} - { id: sdk, version: 0.13.0-rc.92, commit: f59f99079b5e404e59a200ea68b4eb7efcc7bed2, digest: 'sha256:86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.92' } - { id: cli, version: 0.13.0-rc.63, commit: c6e04cec70567c6aeeeee46a96669e2002ff2b05, digest: 'sha256:dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.63' } - - { id: api, version: 0.8.0-rc.87, commit: f127d337e2bf02cb4d2b916b9b38a62e7a775d2d, digest: 'sha256:852adc5c1d82537909d4dc6fde36089e956b95c6dffdf634e932323291ccdb30', artifact: 'https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.87' } + - {"id":"api","version":"0.8.0-rc.88","commit":"8cbd0b410850c7e732080e0b29f08381475b0b68","digest":"sha256:97a0cd142de054745c1993b8baea48148c39c690cad7592466d5a84d620bb73b","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.88"} - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - - { id: agent, version: 0.13.0-rc.44, commit: c5145b3503af550ccc4250794537e1d6bb6da8e3, digest: 'sha256:580d1a73afab964e74aa6b827a75d6f5286f1e81afba8534ba8dc520c0c93c9e', artifact: 'https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.44' } - - { id: treedx, version: 0.3.0-rc.15, commit: 94865a8a2c51cd8893872c685f99666b0de1ffbe, digest: 'sha256:b24e6d7580ed6c3f3ffefecc021bd1b9d452fc58155f32c9c16261dae1bd7389', artifact: 'https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.15' } + - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} + - {"id":"treedx","version":"0.3.0-rc.16","commit":"c2273ed29d2ba7b961f93e3b01c0bfddfd3cf552","digest":"sha256:ce6a0881f14b922d75486c96dd80e650dc34cb0c3d765f112235806693cc1709","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.16"} - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:19c7f60f6b9e698fc650025a16962961b85b34866b295d40b11a937788a182de' +digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' From c1f4f5da14c632323c1e14b4f786dcbbf12f0a4c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 09:02:39 -0400 Subject: [PATCH 229/501] chore(integration): compose generation 214 managed AI acceptance --- config/integrations/development.release.json | 303 +++++++++++++++++-- 1 file changed, 275 insertions(+), 28 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c955657e..096adfe1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,39 +1,286 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc261", - "generation": 213, + "release": "0.1.0~rc262", + "generation": 214, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"8c360c4be42c62302869cedbc181c4bc2abeafd5"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"c21e169fc3fa581761ac5a7f6c02c93601dd5ed7","tag":"0.1.0-rc.261"}, + "platform": { + "repository": "treeseed-ai/platform", + "commit": "d0fe89c18a7b21846e64ab3fc8dc5df54953b724" + }, + "deployment": { + "repository": "treeseed-ai/deployment", + "commit": "3b49621099c7c4a2d0be5d2739f7b0cce742ac76", + "tag": "0.1.0-rc.262" + }, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.92","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.92.tgz","sha256":"86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.88","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/treeseed-api-0.8.0-rc.88.tgz","sha256":"668fb2ff1d42f053659f3fab80d870be0ca8fe96a965dfe91ca752da791525c6"}}, - {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, - { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, - { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, - { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.63","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.63.tgz","sha256":"dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023"}}, - {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.16","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/treeseed-treedx-0.3.0-rc.16.tgz","sha256":"daedbef158d96cb8abd20ba7545728d6003730f5d43d3dd627a45672769519e2"}}, - { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, - { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } + { + "id": "sdk", + "packageName": "@treeseed/sdk", + "version": "0.13.0-rc.95", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz", + "sha256": "2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61" + } + }, + { + "id": "api", + "packageName": "@treeseed/api", + "version": "0.8.0-rc.90", + "artifact": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz", + "sha256": "15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc" + } + }, + { + "id": "ui", + "packageName": "@treeseed/ui", + "version": "0.12.18-rc.18", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz", + "sha256": "ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144" + } + }, + { + "id": "core", + "packageName": "@treeseed/core", + "version": "0.12.60-rc.8", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", + "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" + } + }, + { + "id": "admin", + "packageName": "@treeseed/admin", + "version": "0.12.59-rc.34", + "artifact": { + "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz", + "sha256": "c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23" + } + }, + { + "id": "reviewer", + "packageName": "@treeseed/reviewer", + "version": "0.1.0-rc.13", + "artifact": { + "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", + "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" + } + }, + { + "id": "playwright-core", + "packageName": "playwright-core", + "version": "1.60.0", + "artifact": { + "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" + } + }, + { + "id": "cli", + "packageName": "@treeseed/cli", + "version": "0.13.0-rc.65", + "artifact": { + "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.65.tgz", + "sha256": "1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6" + } + }, + { + "id": "treedx", + "packageName": "@treeseed/treedx", + "version": "0.3.0-rc.17", + "artifact": { + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz", + "sha256": "7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3" + } + }, + { + "id": "yaml", + "packageName": "yaml", + "version": "2.9.0", + "artifact": { + "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" + } + }, + { + "id": "zod", + "packageName": "zod", + "version": "3.25.76", + "artifact": { + "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" + } + } ], "hostProfiles": [ - { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, - { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, - { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, - { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } + { + "id": "core", + "artifact": { + "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/core.json", + "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" + } + }, + { + "id": "control-plane", + "artifact": { + "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/control-plane.json", + "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" + } + }, + { + "id": "capacity-provider", + "artifact": { + "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/capacity-provider.json", + "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" + } + }, + { + "id": "treeai", + "artifact": { + "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", + "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" + } + } ], "components": [ - {"componentId":"api","release":"0.8.0~rc88-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/component-release.json","sha256":"97a0cd142de054745c1993b8baea48148c39c690cad7592466d5a84d620bb73b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.88/compose.yml","sha256":"5f8b70b586375b983627df1c9a377d0a61faf3f3a483debb7676fa92f50916e5"}}]}, - {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, - {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, - {"componentId":"treedx","release":"0.3.0~rc16-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/component-release.json","sha256":"ce6a0881f14b922d75486c96dd80e650dc34cb0c3d765f112235806693cc1709"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.16/compose.yml","sha256":"5cddb088665ad1b77431b1c363b43f8ca0bcaf9879dcad45f4f931ef5423b3ac"}}]}, - { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - { "componentId": "ai-inference", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json", "sha256": "f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1" }, "files": [{ "path": "ai-inference-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-compose.yml", "sha256": "5a3b2a08da21df6a59af62ac6ca117d05fd8b3b9c480b6d7167539ed9e8d7217" } }] }, - { "componentId": "ai-training", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json", "sha256": "aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678" }, "files": [{ "path": "ai-training-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-compose.yml", "sha256": "d6c245c80434769cff305d30f5c25325a1a31fe529b2de7497cea9f641c58a73" } }] }, - { "componentId": "ai-lab", "release": "0.11.0~rc19-1", "manifest": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json", "sha256": "97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b" }, "files": [{ "path": "ai-lab-compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-compose.yml", "sha256": "4dec25b2f0883fb848eb2b9c7b105af5ddc0bd59c1841ec5e80845b93c7b61ec" } }] } + { + "componentId": "api", + "release": "0.8.0~rc90-1", + "manifest": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json", + "sha256": "86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml", + "sha256": "9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f" + } + } + ] + }, + { + "componentId": "admin", + "release": "0.12.59~rc34-1", + "manifest": { + "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json", + "sha256": "7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml", + "sha256": "06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd" + } + } + ] + }, + { + "componentId": "agent", + "release": "0.13.0~rc45-1", + "manifest": { + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json", + "sha256": "ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml", + "sha256": "97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226" + } + } + ] + }, + { + "componentId": "treedx", + "release": "0.3.0~rc17-1", + "manifest": { + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json", + "sha256": "53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml", + "sha256": "76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87" + } + } + ] + }, + { + "componentId": "lab", + "release": "0.1.0~rc34-1", + "manifest": { + "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", + "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" + }, + "files": [ + { + "path": "compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", + "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" + } + } + ] + }, + { + "componentId": "ai-inference", + "release": "0.11.0~rc20-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json", + "sha256": "d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8" + }, + "files": [ + { + "path": "ai-inference-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-compose.yml", + "sha256": "2ef59bb30221ea3348e5b46c8667f7fb40d0621e3901e2f17bf514ab86b65ce1" + } + } + ] + }, + { + "componentId": "ai-training", + "release": "0.11.0~rc20-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json", + "sha256": "86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0" + }, + "files": [ + { + "path": "ai-training-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml", + "sha256": "8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab" + } + } + ] + }, + { + "componentId": "ai-lab", + "release": "0.11.0~rc20-1", + "manifest": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json", + "sha256": "2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c" + }, + "files": [ + { + "path": "ai-lab-compose.yml", + "artifact": { + "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml", + "sha256": "0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef" + } + } + ] + } ], - "createdAt": "2026-09-07T03:59:00.000Z" + "createdAt": "2026-09-07T13:02:20.161Z" } From d9805c93c616e33a82e0933df1c25f845128fb66 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 09:03:24 -0400 Subject: [PATCH 230/501] style: preserve compact integration inventory formatting --- config/integrations/development.release.json | 297 ++----------------- 1 file changed, 25 insertions(+), 272 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 096adfe1..ea2d230e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -4,283 +4,36 @@ "generation": 214, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": { - "repository": "treeseed-ai/platform", - "commit": "d0fe89c18a7b21846e64ab3fc8dc5df54953b724" - }, - "deployment": { - "repository": "treeseed-ai/deployment", - "commit": "3b49621099c7c4a2d0be5d2739f7b0cce742ac76", - "tag": "0.1.0-rc.262" - }, + "platform": {"repository":"treeseed-ai/platform","commit":"d0fe89c18a7b21846e64ab3fc8dc5df54953b724"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"3b49621099c7c4a2d0be5d2739f7b0cce742ac76","tag":"0.1.0-rc.262"}, "hostPayloads": [ - { - "id": "sdk", - "packageName": "@treeseed/sdk", - "version": "0.13.0-rc.95", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz", - "sha256": "2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61" - } - }, - { - "id": "api", - "packageName": "@treeseed/api", - "version": "0.8.0-rc.90", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz", - "sha256": "15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc" - } - }, - { - "id": "ui", - "packageName": "@treeseed/ui", - "version": "0.12.18-rc.18", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz", - "sha256": "ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144" - } - }, - { - "id": "core", - "packageName": "@treeseed/core", - "version": "0.12.60-rc.8", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", - "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" - } - }, - { - "id": "admin", - "packageName": "@treeseed/admin", - "version": "0.12.59-rc.34", - "artifact": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz", - "sha256": "c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23" - } - }, - { - "id": "reviewer", - "packageName": "@treeseed/reviewer", - "version": "0.1.0-rc.13", - "artifact": { - "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", - "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" - } - }, - { - "id": "playwright-core", - "packageName": "playwright-core", - "version": "1.60.0", - "artifact": { - "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" - } - }, - { - "id": "cli", - "packageName": "@treeseed/cli", - "version": "0.13.0-rc.65", - "artifact": { - "url": "https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.65.tgz", - "sha256": "1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6" - } - }, - { - "id": "treedx", - "packageName": "@treeseed/treedx", - "version": "0.3.0-rc.17", - "artifact": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz", - "sha256": "7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3" - } - }, - { - "id": "yaml", - "packageName": "yaml", - "version": "2.9.0", - "artifact": { - "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" - } - }, - { - "id": "zod", - "packageName": "zod", - "version": "3.25.76", - "artifact": { - "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" - } - } + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, + {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, + { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, + { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, + { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.65","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.65.tgz","sha256":"1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6"}}, + {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, + { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, + { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], "hostProfiles": [ - { - "id": "core", - "artifact": { - "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/core.json", - "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" - } - }, - { - "id": "control-plane", - "artifact": { - "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/control-plane.json", - "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" - } - }, - { - "id": "capacity-provider", - "artifact": { - "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/capacity-provider.json", - "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" - } - }, - { - "id": "treeai", - "artifact": { - "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", - "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" - } - } + { "id": "core", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/core.json", "sha256": "4f2203b3e02c900f71c81cb72970c40532b7959c1b45c00159e4f0f486d07a10" } }, + { "id": "control-plane", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/control-plane.json", "sha256": "3cb3f6da30f852963944adcbf6cbed0eb7d8fe30000d289780cfe13d1e670056" } }, + { "id": "capacity-provider", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/capacity-provider.json", "sha256": "feec8c90c15fbd15ecf9a15779b847432beb9fff6f7146b7e33c623930adff68" } }, + { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - { - "componentId": "api", - "release": "0.8.0~rc90-1", - "manifest": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json", - "sha256": "86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml", - "sha256": "9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f" - } - } - ] - }, - { - "componentId": "admin", - "release": "0.12.59~rc34-1", - "manifest": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json", - "sha256": "7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml", - "sha256": "06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd" - } - } - ] - }, - { - "componentId": "agent", - "release": "0.13.0~rc45-1", - "manifest": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json", - "sha256": "ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml", - "sha256": "97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226" - } - } - ] - }, - { - "componentId": "treedx", - "release": "0.3.0~rc17-1", - "manifest": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json", - "sha256": "53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml", - "sha256": "76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87" - } - } - ] - }, - { - "componentId": "lab", - "release": "0.1.0~rc34-1", - "manifest": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", - "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" - }, - "files": [ - { - "path": "compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", - "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" - } - } - ] - }, - { - "componentId": "ai-inference", - "release": "0.11.0~rc20-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json", - "sha256": "d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8" - }, - "files": [ - { - "path": "ai-inference-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-compose.yml", - "sha256": "2ef59bb30221ea3348e5b46c8667f7fb40d0621e3901e2f17bf514ab86b65ce1" - } - } - ] - }, - { - "componentId": "ai-training", - "release": "0.11.0~rc20-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json", - "sha256": "86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0" - }, - "files": [ - { - "path": "ai-training-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml", - "sha256": "8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab" - } - } - ] - }, - { - "componentId": "ai-lab", - "release": "0.11.0~rc20-1", - "manifest": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json", - "sha256": "2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c" - }, - "files": [ - { - "path": "ai-lab-compose.yml", - "artifact": { - "url": "https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml", - "sha256": "0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef" - } - } - ] - } + {"componentId":"api","release":"0.8.0~rc90-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json","sha256":"86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml","sha256":"9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f"}}]}, + {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, + {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, + {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, + { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, + {"componentId":"ai-inference","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json","sha256":"d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-compose.yml","sha256":"2ef59bb30221ea3348e5b46c8667f7fb40d0621e3901e2f17bf514ab86b65ce1"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json","sha256":"86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json","sha256":"2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml","sha256":"0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef"}}]} ], "createdAt": "2026-09-07T13:02:20.161Z" } From 5d04c53417023bf86a3a2570225f5098a2690f7e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 09:14:21 -0400 Subject: [PATCH 231/501] chore(integration): record published generation 214 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0bf6951e..0e07a0b1 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' } +integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 8d8e7f03..c7037940 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' } +integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 56f9bb83..6488656e 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-213 +release: development-214 components: - - {"id":"deployment","version":"0.1.0-rc.261","commit":"c21e169fc3fa581761ac5a7f6c02c93601dd5ed7","digest":"sha256:c89d802cc72c853351934ab8755bebe685e08205514a9861612b84ea81515378","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.261/exact-head.json"} - - { id: sdk, version: 0.13.0-rc.92, commit: f59f99079b5e404e59a200ea68b4eb7efcc7bed2, digest: 'sha256:86bca16dc26c96c22b78c2de5439b3558a360d85df4d07b6795a8c0512a8f667', artifact: 'https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.92' } - - { id: cli, version: 0.13.0-rc.63, commit: c6e04cec70567c6aeeeee46a96669e2002ff2b05, digest: 'sha256:dde46032cf1efaebee6da35e1dcbd4c075756edefa04f495383135a700f72023', artifact: 'https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.63' } - - {"id":"api","version":"0.8.0-rc.88","commit":"8cbd0b410850c7e732080e0b29f08381475b0b68","digest":"sha256:97a0cd142de054745c1993b8baea48148c39c690cad7592466d5a84d620bb73b","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.88"} + - {"id":"deployment","version":"0.1.0-rc.262","commit":"3b49621099c7c4a2d0be5d2739f7b0cce742ac76","digest":"sha256:ade62d5bd21d98c575ac7d84887037ac511b987dc90c674c172da91578e8baec","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.262/exact-head.json"} + - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} + - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} + - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - - {"id":"treedx","version":"0.3.0-rc.16","commit":"c2273ed29d2ba7b961f93e3b01c0bfddfd3cf552","digest":"sha256:ce6a0881f14b922d75486c96dd80e650dc34cb0c3d765f112235806693cc1709","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.16"} - - { id: treeai-inference, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:f067e0594bfa3de41f0db03e4213abd73f29515e86197e3f4927ff0b78db5ea1', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-inference-component-release.json' } - - { id: treeai-training, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:aef99efd51ea0fad2b3df7912ffa21cae7141f6507011a279fd2c6668e58e678', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-training-component-release.json' } - - { id: treeai-lab, version: 0.11.0-rc19, commit: 8bc0d8aa186aedc05af2db8ee199e5af23e5e396, digest: 'sha256:97582df517927fa839661e596aeeb88736463364f53476babf78e08132aceb5b', artifact: 'https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc19/ai-lab-component-release.json' } + - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} + - {"id":"treeai-inference","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json"} + - {"id":"treeai-training","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json"} + - {"id":"treeai-lab","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json"} - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:30f3c3a2860b733a249a0badd17acee3a8ca6b547ddcee3aed958f308b2e4b9a' +digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' From 39aff75c69aa2b3c472f1cbdf6fc0aec5158a3cb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 09:47:04 -0400 Subject: [PATCH 232/501] chore(integration): compose generation 215 AI custody fixes --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ea2d230e..90c70964 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc262", - "generation": 214, + "release": "0.1.0~rc263", + "generation": 215, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"d0fe89c18a7b21846e64ab3fc8dc5df54953b724"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"3b49621099c7c4a2d0be5d2739f7b0cce742ac76","tag":"0.1.0-rc.262"}, + "platform": {"repository":"treeseed-ai/platform","commit":"b41bf3336b5dd27a078bcfc8aceb01ed6b4c979b"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","tag":"0.1.0-rc.263"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json","sha256":"86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json","sha256":"2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml","sha256":"0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef"}}]} ], - "createdAt": "2026-09-07T13:02:20.161Z" + "createdAt": "2026-09-07T13:47:02.132Z" } From 94aa0976181b2d5570ad9d3ab1d1173db4c2c851 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 09:52:15 -0400 Subject: [PATCH 233/501] chore(integration): record published generation 215 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0e07a0b1..b03ebac5 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } +integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index c7037940..47989b75 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } +integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6488656e..9d623cd4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-214 +release: development-215 components: - - {"id":"deployment","version":"0.1.0-rc.262","commit":"3b49621099c7c4a2d0be5d2739f7b0cce742ac76","digest":"sha256:ade62d5bd21d98c575ac7d84887037ac511b987dc90c674c172da91578e8baec","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.262/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.263","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","digest":"sha256:56a8ef28e1c0d223cc0d09348c700f270452bba17e0d9533c3dfca16f9648d1d","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.263/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json"} - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' +digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' From 0edf5881e94a6d85d70384b0f794a43a1e779fbc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 10:06:01 -0400 Subject: [PATCH 234/501] chore(integration): record published generation 215 inventory (#435) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 0e07a0b1..b03ebac5 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } +integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index c7037940..47989b75 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' } +integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 6488656e..9d623cd4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-214 +release: development-215 components: - - {"id":"deployment","version":"0.1.0-rc.262","commit":"3b49621099c7c4a2d0be5d2739f7b0cce742ac76","digest":"sha256:ade62d5bd21d98c575ac7d84887037ac511b987dc90c674c172da91578e8baec","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.262/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.263","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","digest":"sha256:56a8ef28e1c0d223cc0d09348c700f270452bba17e0d9533c3dfca16f9648d1d","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.263/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json"} - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:8425cc5a989df2a6a35557db1095602cfe9ea32d38b597d43342d0bc6e922166' +digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' From 8606ca9d25d726114fc1ecbd5c18fb9ba57447bd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 10:11:36 -0400 Subject: [PATCH 235/501] release: intake AI rc21 for generation216 (#436) --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 90c70964..a726e0b9 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc263", - "generation": 215, + "release": "0.1.0~rc264", + "generation": 216, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b41bf3336b5dd27a078bcfc8aceb01ed6b4c979b"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","tag":"0.1.0-rc.263"}, + "platform": {"repository":"treeseed-ai/platform","commit":"0edf5881e94a6d85d70384b0f794a43a1e779fbc"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","tag":"0.1.0-rc.264"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, @@ -31,9 +31,9 @@ {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json","sha256":"d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-compose.yml","sha256":"2ef59bb30221ea3348e5b46c8667f7fb40d0621e3901e2f17bf514ab86b65ce1"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json","sha256":"86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json","sha256":"2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml","sha256":"0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json","sha256":"b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-compose.yml","sha256":"9526cc07a704966f37fe79552705ee1afde815758cc194e6c0708b0b062d11f3"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T13:47:02.132Z" + "createdAt": "2026-09-07T14:11:34.499Z" } From a85c2609505e930a39c7ab99a773d903a47880b3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 10:12:30 -0400 Subject: [PATCH 236/501] release: intake AI rc21 for generation216 (#436) (#437) --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 90c70964..a726e0b9 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc263", - "generation": 215, + "release": "0.1.0~rc264", + "generation": 216, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b41bf3336b5dd27a078bcfc8aceb01ed6b4c979b"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","tag":"0.1.0-rc.263"}, + "platform": {"repository":"treeseed-ai/platform","commit":"0edf5881e94a6d85d70384b0f794a43a1e779fbc"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","tag":"0.1.0-rc.264"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, @@ -31,9 +31,9 @@ {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json","sha256":"d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-compose.yml","sha256":"2ef59bb30221ea3348e5b46c8667f7fb40d0621e3901e2f17bf514ab86b65ce1"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json","sha256":"86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc20-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json","sha256":"2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-compose.yml","sha256":"0e78384e0c6cf099369d7957af1bb304b7c417454fe9dcf50ddc3bf7a3e7cfef"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json","sha256":"b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-compose.yml","sha256":"9526cc07a704966f37fe79552705ee1afde815758cc194e6c0708b0b062d11f3"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T13:47:02.132Z" + "createdAt": "2026-09-07T14:11:34.499Z" } From 26a106dc6e305d63b7983b94d2186ced8d662209 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 10:16:25 -0400 Subject: [PATCH 237/501] release: pin generation216 published inventory (#436) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index b03ebac5..7ff845a2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } +integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 47989b75..a6491014 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } +integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9d623cd4..07a2b6a6 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-215 +release: development-216 components: - - {"id":"deployment","version":"0.1.0-rc.263","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","digest":"sha256:56a8ef28e1c0d223cc0d09348c700f270452bba17e0d9533c3dfca16f9648d1d","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.263/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.264","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","digest":"sha256:404c8004eafcda7de4b62651e134bd3b3fd3c2e636a935de124cd8abf2c4af6f","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.264/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - - {"id":"treeai-inference","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json"} - - {"id":"treeai-training","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json"} - - {"id":"treeai-lab","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json"} + - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} + - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} + - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' +digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' From 06333ca77059bfc4a5f5026429c8c4014344ae10 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 10:17:15 -0400 Subject: [PATCH 238/501] release: pin generation216 published inventory (#436) (#438) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index b03ebac5..7ff845a2 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } +integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 47989b75..a6491014 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' } +integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9d623cd4..07a2b6a6 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-215 +release: development-216 components: - - {"id":"deployment","version":"0.1.0-rc.263","commit":"16e24a37f6b75a1e7ef678b56ff1a6c001a25dfe","digest":"sha256:56a8ef28e1c0d223cc0d09348c700f270452bba17e0d9533c3dfca16f9648d1d","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.263/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.264","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","digest":"sha256:404c8004eafcda7de4b62651e134bd3b3fd3c2e636a935de124cd8abf2c4af6f","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.264/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - - {"id":"treeai-inference","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:d2adfda115452168230a1e7654482907612e83c7ee84c1b2ac1a3fa618611fe8","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-inference-component-release.json"} - - {"id":"treeai-training","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:86f830d0d84f2c264d19966369cfe212e0e113c94bed8c61290672a4628a17b0","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-training-component-release.json"} - - {"id":"treeai-lab","version":"0.11.0-rc20","commit":"1335113a90793c971d34628c151810392abb71d6","digest":"sha256:2b83f1306da6d0b1af91b967709c9e0eae31c71e6d965ed8fdb29cf5fa04173c","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc20/ai-lab-component-release.json"} + - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} + - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} + - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:33f8d01a7dc154011d8b404f7730a31e8f65c4b9c54aa4916052892d7cec6f26' +digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' From 2360a1b4652c1ad7f4b53f9e9d9d16f59d5ec432 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 11:51:35 -0400 Subject: [PATCH 239/501] chore(ai): intake rc265 custody foundation (#425) --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a726e0b9..87da77ae 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc264", - "generation": 216, + "release": "0.1.0~rc265", + "generation": 217, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"0edf5881e94a6d85d70384b0f794a43a1e779fbc"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","tag":"0.1.0-rc.264"}, + "platform": {"repository":"treeseed-ai/platform","commit":"06333ca77059bfc4a5f5026429c8c4014344ae10"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d732513d0d133a5a954a7a1d944c8d0fcc3911f1","tag":"0.1.0-rc.265"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.96","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.96.tgz","sha256":"85f506469bd51b59c9a76b91cd2a895b90be66fd9fc7000d58278b5507e58610"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T14:11:34.499Z" + "createdAt": "2026-09-07T15:51:00.000Z" } From e362ece61491daec3714cfbb2f922484003e4558 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 11:54:02 -0400 Subject: [PATCH 240/501] chore(ai): intake rc265 custody foundation (#425) (#439) --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a726e0b9..87da77ae 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc264", - "generation": 216, + "release": "0.1.0~rc265", + "generation": 217, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"0edf5881e94a6d85d70384b0f794a43a1e779fbc"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","tag":"0.1.0-rc.264"}, + "platform": {"repository":"treeseed-ai/platform","commit":"06333ca77059bfc4a5f5026429c8c4014344ae10"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d732513d0d133a5a954a7a1d944c8d0fcc3911f1","tag":"0.1.0-rc.265"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.95","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.95.tgz","sha256":"2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.96","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.96.tgz","sha256":"85f506469bd51b59c9a76b91cd2a895b90be66fd9fc7000d58278b5507e58610"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T14:11:34.499Z" + "createdAt": "2026-09-07T15:51:00.000Z" } From c202781b86cad4adf8a89a6c7028d1fafcca699c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 13:15:56 -0400 Subject: [PATCH 241/501] chore(release): prepare generation218 persistent development and help payloads --- config/integrations/development.release.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 87da77ae..a47a95dc 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc265", - "generation": 217, + "release": "0.1.0~rc266", + "generation": 218, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"06333ca77059bfc4a5f5026429c8c4014344ae10"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d732513d0d133a5a954a7a1d944c8d0fcc3911f1","tag":"0.1.0-rc.265"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e362ece61491daec3714cfbb2f922484003e4558"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","tag":"0.1.0-rc.266"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.96","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.96.tgz","sha256":"85f506469bd51b59c9a76b91cd2a895b90be66fd9fc7000d58278b5507e58610"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.98","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.98.tgz","sha256":"0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, - {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, + {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.65","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.65.tgz","sha256":"1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.66","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.66.tgz","sha256":"05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -27,7 +27,7 @@ ], "components": [ {"componentId":"api","release":"0.8.0~rc90-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json","sha256":"86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml","sha256":"9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f"}}]}, - {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, + {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T15:51:00.000Z" + "createdAt": "2026-09-07T17:18:00.000Z" } From 7356e4be73aff88c8185a5cba76ced9ae90f3234 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 13:16:20 -0400 Subject: [PATCH 242/501] docs(development): require explicit switching instead of expiry --- AGENTS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 46b60754..35ea771c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,10 @@ Every delivery follows `Issue -> branch -> pull request -> Actions -> staging me Human approval is reserved exclusively for pull requests targeting `main` as the production promotion boundary. Staging pull requests, candidate publication, staging deployments, infrastructure plans, reconciliation, and acceptance proceed through authorized agents and required automated checks without human-only approval gates. +## Development selection lifetime + +Local development selections persist until explicitly switched or stopped through `trsd`. Do not add session expiration, wall-clock watchdog shutdowns, or time-based fallback to released code. Preserve process ownership, readiness checks, explicit stop/drain behavior, and normal credential/token expiration; those are separate from development selection lifetime. + ## Branch and deployment boundary `main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments. From 3d27455794abd95deced75d5b09f24be3958fadc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 13:18:11 -0400 Subject: [PATCH 243/501] chore(release): generation218 persistent development and released help intake (#441) * chore(release): prepare generation218 persistent development and help payloads * docs(development): require explicit switching instead of expiry --- AGENTS.md | 4 ++++ config/integrations/development.release.json | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 46b60754..35ea771c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,10 @@ Every delivery follows `Issue -> branch -> pull request -> Actions -> staging me Human approval is reserved exclusively for pull requests targeting `main` as the production promotion boundary. Staging pull requests, candidate publication, staging deployments, infrastructure plans, reconciliation, and acceptance proceed through authorized agents and required automated checks without human-only approval gates. +## Development selection lifetime + +Local development selections persist until explicitly switched or stopped through `trsd`. Do not add session expiration, wall-clock watchdog shutdowns, or time-based fallback to released code. Preserve process ownership, readiness checks, explicit stop/drain behavior, and normal credential/token expiration; those are separate from development selection lifetime. + ## Branch and deployment boundary `main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments. diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 87da77ae..a47a95dc 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc265", - "generation": 217, + "release": "0.1.0~rc266", + "generation": 218, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"06333ca77059bfc4a5f5026429c8c4014344ae10"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d732513d0d133a5a954a7a1d944c8d0fcc3911f1","tag":"0.1.0-rc.265"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e362ece61491daec3714cfbb2f922484003e4558"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","tag":"0.1.0-rc.266"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.96","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.96.tgz","sha256":"85f506469bd51b59c9a76b91cd2a895b90be66fd9fc7000d58278b5507e58610"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.98","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.98.tgz","sha256":"0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, - {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.18.tgz","sha256":"ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144"}}, + {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.34","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/treeseed-admin-0.12.59-rc.34.tgz","sha256":"c898ba2d6feebc2b9104465612efc59ed9e1c43e3d5809f80d17c5a6098a0f23"}}, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.65","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.65.tgz","sha256":"1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.66","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.66.tgz","sha256":"05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -27,7 +27,7 @@ ], "components": [ {"componentId":"api","release":"0.8.0~rc90-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json","sha256":"86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml","sha256":"9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f"}}]}, - {"componentId":"admin","release":"0.12.59~rc34-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/component-release.json","sha256":"7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.34/compose.yml","sha256":"06921d6e62b325474615c993fb7aaed7f1240443b4249aca147ef93dedda52fd"}}]}, + {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} ], - "createdAt": "2026-09-07T15:51:00.000Z" + "createdAt": "2026-09-07T17:18:00.000Z" } From 7af22789c3c50c57fafa7d6161377f176b7484fb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 13:25:32 -0400 Subject: [PATCH 244/501] chore(release): lock generation218 installed persistent development inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7ff845a2..3867ac4d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } +integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index a6491014..7fd2af08 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } +integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 07a2b6a6..9b7dfe2b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-216 +release: development-218 components: - - {"id":"deployment","version":"0.1.0-rc.264","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","digest":"sha256:404c8004eafcda7de4b62651e134bd3b3fd3c2e636a935de124cd8abf2c4af6f","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.264/exact-head.json"} - - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} + - {"id":"deployment","version":"0.1.0-rc.266","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","digest":"sha256:48e04777a3b5e6e4644e1d2a78fbbf634564dd4d8a850bba891624acd3505036","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.266/exact-head.json"} + - {"id":"sdk","version":"0.13.0-rc.98","commit":"610f7895d465a4aa67fab5a9f658ba24c11d7b0b","digest":"sha256:0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.98"} + - {"id":"cli","version":"0.13.0-rc.66","commit":"c6cf74ecb7c56be0e3865845b2c4ca8d277b5082","digest":"sha256:05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.66"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} - - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } + - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} - - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' + - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} +digest: "sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205" From fc0168eab8b679bd1db2463371665090b95ff335 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 13:28:29 -0400 Subject: [PATCH 245/501] chore(release): lock generation218 installed persistent development inventory (#442) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 7ff845a2..3867ac4d 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } +integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index a6491014..7fd2af08 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' } +integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 07a2b6a6..9b7dfe2b 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-216 +release: development-218 components: - - {"id":"deployment","version":"0.1.0-rc.264","commit":"abf9270650d0d4df60f94d34cd54db8181c804c0","digest":"sha256:404c8004eafcda7de4b62651e134bd3b3fd3c2e636a935de124cd8abf2c4af6f","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.264/exact-head.json"} - - {"id":"sdk","version":"0.13.0-rc.95","commit":"991cefb28762ff60f24eabc3fc6036687a7de4cc","digest":"sha256:2f01d43615b1cfa7950ef0528ebf73e96bd8be4b41feeee9c9f2d28e9dfe1d61","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.95"} - - {"id":"cli","version":"0.13.0-rc.65","commit":"20f9735e0ff0289c25e3bd3ead16d91d3bc6e431","digest":"sha256:1b5117f33dcac3d651f2562c0c1027e6cabc7608e8543eba603ffed0ffed47d6","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.65"} + - {"id":"deployment","version":"0.1.0-rc.266","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","digest":"sha256:48e04777a3b5e6e4644e1d2a78fbbf634564dd4d8a850bba891624acd3505036","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.266/exact-head.json"} + - {"id":"sdk","version":"0.13.0-rc.98","commit":"610f7895d465a4aa67fab5a9f658ba24c11d7b0b","digest":"sha256:0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.98"} + - {"id":"cli","version":"0.13.0-rc.66","commit":"c6cf74ecb7c56be0e3865845b2c4ca8d277b5082","digest":"sha256:05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.66"} - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} - - { id: admin, version: 0.12.59-rc.34, commit: cadbb591d1c97a266ce0b132c75402082bb275e8, digest: 'sha256:7e0a634741444a1af2410d3656e45c06d248bee5d72fdad6a1be6f87d1d8f1bb', artifact: 'https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.34' } + - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} - - { id: ui, version: 0.12.18-rc.18, commit: 9bbd5da9e674ba189fd69c89fdc4582fb64e1306, digest: 'sha256:ddf52786096e44b66a184c9f26cfa3c813d95d70e60b63e10ee2f40ed68cc144', artifact: 'https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.18' } -digest: 'sha256:31c2cdcd169f242fbc52084e2858102178768cec3371654e25ba58757552f289' + - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} +digest: "sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205" From 1dee5ca121fd0c38b94b3e6076b53a5f1132805c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:27:13 -0400 Subject: [PATCH 246/501] chore: lock generation 219 recovery and AI storage artifacts --- config/integrations/development.release.json | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a47a95dc..ad730970 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc266", - "generation": 218, + "release": "0.1.0~rc267", + "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"e362ece61491daec3714cfbb2f922484003e4558"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","tag":"0.1.0-rc.266"}, + "platform": {"repository":"treeseed-ai/platform","commit":"fc0168eab8b679bd1db2463371665090b95ff335"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2eb0f70eb806146d9609db42bfc626d427ed900e","tag":"0.1.0-rc.267"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.98","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.98.tgz","sha256":"0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.66","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.66.tgz","sha256":"05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.67","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.67.tgz","sha256":"98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc90-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json","sha256":"86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml","sha256":"9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f"}}]}, + {"componentId":"api","release":"0.8.0~rc91-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/component-release.json","sha256":"076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/compose.yml","sha256":"7bf5d6e002e84a8b61af195bfb84274ccfd88b689fd35e22a0b8cc9d67eca0b0"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json","sha256":"b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-compose.yml","sha256":"9526cc07a704966f37fe79552705ee1afde815758cc194e6c0708b0b062d11f3"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T17:18:00.000Z" + "createdAt": "2026-09-07T18:26:00.000Z" } From 55096d66af712655daf4ff8c4f7ff4e65ec03ac8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:28:15 -0400 Subject: [PATCH 247/501] chore: lock generation 219 recovery and AI storage artifacts (#444) --- config/integrations/development.release.json | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a47a95dc..ad730970 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc266", - "generation": 218, + "release": "0.1.0~rc267", + "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"e362ece61491daec3714cfbb2f922484003e4558"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","tag":"0.1.0-rc.266"}, + "platform": {"repository":"treeseed-ai/platform","commit":"fc0168eab8b679bd1db2463371665090b95ff335"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2eb0f70eb806146d9609db42bfc626d427ed900e","tag":"0.1.0-rc.267"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.98","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.98.tgz","sha256":"0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.90","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/treeseed-api-0.8.0-rc.90.tgz","sha256":"15ed4688fda50d99058328227ed2878e6b317fa1a7b49e4b7c12a365a71725fc"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.66","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.66.tgz","sha256":"05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.67","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.67.tgz","sha256":"98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc90-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/component-release.json","sha256":"86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.90/compose.yml","sha256":"9112942e908a0a8da4e8dedb4454416bf4a1f4b01dd0998e7f4e39e27586b56f"}}]}, + {"componentId":"api","release":"0.8.0~rc91-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/component-release.json","sha256":"076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/compose.yml","sha256":"7bf5d6e002e84a8b61af195bfb84274ccfd88b689fd35e22a0b8cc9d67eca0b0"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json","sha256":"b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-compose.yml","sha256":"9526cc07a704966f37fe79552705ee1afde815758cc194e6c0708b0b062d11f3"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json","sha256":"e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-compose.yml","sha256":"8f781ded331ed3d7d81e843ab7b173091c2c24ed8646bc0e2a0ef09665bdd1ab"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc21-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json","sha256":"2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-compose.yml","sha256":"c8d66ca617c5384b6cf51695b4959fc2abce897321f7097b03b95d0bf8a45b1a"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T17:18:00.000Z" + "createdAt": "2026-09-07T18:26:00.000Z" } From 900e1716c274b32030baea9f9951cc8d2d175373 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:41:24 -0400 Subject: [PATCH 248/501] chore: bind generation 219 to tested recovery transport --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ad730970..56b6f80c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc267", + "release": "0.1.0~rc268", "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"fc0168eab8b679bd1db2463371665090b95ff335"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"2eb0f70eb806146d9609db42bfc626d427ed900e","tag":"0.1.0-rc.267"}, + "platform": {"repository":"treeseed-ai/platform","commit":"55096d66af712655daf4ff8c4f7ff4e65ec03ac8"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"bf4e5bcba68df12ff54908e53c6ca20c967f6efe","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:26:00.000Z" + "createdAt": "2026-09-07T18:41:00.000Z" } From 6cb3a1400289cb395625529c752e0ea37076a5ab Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:42:34 -0400 Subject: [PATCH 249/501] chore: bind generation 219 to tested recovery transport (#445) --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ad730970..56b6f80c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc267", + "release": "0.1.0~rc268", "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"fc0168eab8b679bd1db2463371665090b95ff335"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"2eb0f70eb806146d9609db42bfc626d427ed900e","tag":"0.1.0-rc.267"}, + "platform": {"repository":"treeseed-ai/platform","commit":"55096d66af712655daf4ff8c4f7ff4e65ec03ac8"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"bf4e5bcba68df12ff54908e53c6ca20c967f6efe","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:26:00.000Z" + "createdAt": "2026-09-07T18:41:00.000Z" } From 323a240b646d15c6f733a8769379754309a2e45e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:51:34 -0400 Subject: [PATCH 250/501] chore: pin serialized recovery release closure --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 56b6f80c..909788dd 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -4,8 +4,8 @@ "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"55096d66af712655daf4ff8c4f7ff4e65ec03ac8"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"bf4e5bcba68df12ff54908e53c6ca20c967f6efe","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"6cb3a1400289cb395625529c752e0ea37076a5ab"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"4b7096166fe37841fcf2c3fd7be9f76032eda4d7","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:41:00.000Z" + "createdAt": "2026-09-07T18:51:00.000Z" } From 5309626d0df50234a8026861efa8ecd3454a4a8b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 14:53:37 -0400 Subject: [PATCH 251/501] chore: pin serialized recovery release closure (#446) --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 56b6f80c..909788dd 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -4,8 +4,8 @@ "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"55096d66af712655daf4ff8c4f7ff4e65ec03ac8"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"bf4e5bcba68df12ff54908e53c6ca20c967f6efe","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"6cb3a1400289cb395625529c752e0ea37076a5ab"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"4b7096166fe37841fcf2c3fd7be9f76032eda4d7","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:41:00.000Z" + "createdAt": "2026-09-07T18:51:00.000Z" } From 56db7b56462fa84a161c6552aa8d5a2d777dbab4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 15:30:15 -0400 Subject: [PATCH 252/501] fix: pin final rc268 recovery and storage closure --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 909788dd..e06713d8 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -4,8 +4,8 @@ "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"6cb3a1400289cb395625529c752e0ea37076a5ab"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"4b7096166fe37841fcf2c3fd7be9f76032eda4d7","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"5309626d0df50234a8026861efa8ecd3454a4a8b"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:51:00.000Z" + "createdAt": "2026-09-07T19:30:00.000Z" } From fe14c817c19e2f6035ea4f076d5c02870afc08f3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 15:31:48 -0400 Subject: [PATCH 253/501] fix: pin final rc268 recovery and storage closure (#447) --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 909788dd..e06713d8 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -4,8 +4,8 @@ "generation": 219, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"6cb3a1400289cb395625529c752e0ea37076a5ab"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"4b7096166fe37841fcf2c3fd7be9f76032eda4d7","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"5309626d0df50234a8026861efa8ecd3454a4a8b"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","tag":"0.1.0-rc.268"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T18:51:00.000Z" + "createdAt": "2026-09-07T19:30:00.000Z" } From dc2d7d88ca5687ce316c9ea6aef0db54e2279c50 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 15:36:41 -0400 Subject: [PATCH 254/501] chore(release): lock published generation219 runtime inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 3867ac4d..bb7c61e6 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } +integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 7fd2af08..2012fbf0 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } +integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9b7dfe2b..c138e1af 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-218 +release: development-219 components: - - {"id":"deployment","version":"0.1.0-rc.266","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","digest":"sha256:48e04777a3b5e6e4644e1d2a78fbbf634564dd4d8a850bba891624acd3505036","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.266/exact-head.json"} - - {"id":"sdk","version":"0.13.0-rc.98","commit":"610f7895d465a4aa67fab5a9f658ba24c11d7b0b","digest":"sha256:0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.98"} - - {"id":"cli","version":"0.13.0-rc.66","commit":"c6cf74ecb7c56be0e3865845b2c4ca8d277b5082","digest":"sha256:05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.66"} - - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} + - {"id":"deployment","version":"0.1.0-rc.268","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","digest":"sha256:6713e072a28bc33a0c6c5cdbf8da1d218e2e304a42e7947da15037e63a741fc5","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.268/exact-head.json"} + - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} + - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} + - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} - - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} - - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} + - {"id":"treeai-inference","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json"} + - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} + - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205" +digest: "sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d" From f966291be80d41d0b31fbbddaecbf3aa9461d664 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 15:38:15 -0400 Subject: [PATCH 255/501] chore(release): lock published generation219 runtime inventory (#448) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 3867ac4d..bb7c61e6 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } +integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 7fd2af08..2012fbf0 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205' } +integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9b7dfe2b..c138e1af 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-218 +release: development-219 components: - - {"id":"deployment","version":"0.1.0-rc.266","commit":"dc67809eda94aabb9702872ef3f5973ba03625a0","digest":"sha256:48e04777a3b5e6e4644e1d2a78fbbf634564dd4d8a850bba891624acd3505036","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.266/exact-head.json"} - - {"id":"sdk","version":"0.13.0-rc.98","commit":"610f7895d465a4aa67fab5a9f658ba24c11d7b0b","digest":"sha256:0ce1d7f7f17b1ec9516a6e9e843d5e1e653275bbf269885419af8134c9f5507f","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.98"} - - {"id":"cli","version":"0.13.0-rc.66","commit":"c6cf74ecb7c56be0e3865845b2c4ca8d277b5082","digest":"sha256:05ff342d3a2dd3330012237c3f4615b7b8e98be4deab5ea1bc838a90dcc26f1c","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.66"} - - {"id":"api","version":"0.8.0-rc.90","commit":"d263b4922d97645656d34b9988f2bfe3276730a7","digest":"sha256:86512f2f1faeec9e8fd4f42c8c2de4573a713eab46f667c7b0cef2fb7b7d7105","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.90"} + - {"id":"deployment","version":"0.1.0-rc.268","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","digest":"sha256:6713e072a28bc33a0c6c5cdbf8da1d218e2e304a42e7947da15037e63a741fc5","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.268/exact-head.json"} + - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} + - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} + - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - - {"id":"treeai-inference","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:b58703d3a3242969a09829900e92cee35e2dd1f648b518b0dd0c983d2814ed36","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-inference-component-release.json"} - - {"id":"treeai-training","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:e01ff3daf5f0622da79699bcfb1460a8f914f4323aa58b50bf1e1d87b2f3eef5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-training-component-release.json"} - - {"id":"treeai-lab","version":"0.11.0-rc21","commit":"6949ad289ab88f856f2e0ec58260ad6774a28e56","digest":"sha256:2e901b4b9c53ca729d0e066f096dc91efe57ff9cd415f4ab1de2b7e39bab87e5","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc21/ai-lab-component-release.json"} + - {"id":"treeai-inference","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json"} + - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} + - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:e2b0ee66dfb6aecf0b73e86eeb2a1cca48c262a68f1bb10e912d1172445d8205" +digest: "sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d" From c28fdfcd2e2a61045126f57bb9630a79a893c9a8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 16:20:52 -0400 Subject: [PATCH 256/501] release: prepare generation220 rc269 acceptance fixes --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e06713d8..7f0ba24e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc268", - "generation": 219, + "release": "0.1.0~rc269", + "generation": 220, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"5309626d0df50234a8026861efa8ecd3454a4a8b"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"f966291be80d41d0b31fbbddaecbf3aa9461d664"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","tag":"0.1.0-rc.269"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T19:30:00.000Z" + "createdAt": "2026-09-07T20:21:00.000Z" } From 281848de4d21a1c7e9db7b7151c5c9a0962e7452 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 16:22:01 -0400 Subject: [PATCH 257/501] release: prepare generation220 rc269 acceptance fixes (#449) --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e06713d8..7f0ba24e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc268", - "generation": 219, + "release": "0.1.0~rc269", + "generation": 220, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"5309626d0df50234a8026861efa8ecd3454a4a8b"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","tag":"0.1.0-rc.268"}, + "platform": {"repository":"treeseed-ai/platform","commit":"f966291be80d41d0b31fbbddaecbf3aa9461d664"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","tag":"0.1.0-rc.269"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T19:30:00.000Z" + "createdAt": "2026-09-07T20:21:00.000Z" } From d25430e1fe129f6f936d72076c3259c5c543a774 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 16:28:23 -0400 Subject: [PATCH 258/501] release: lock published Deployment269 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index bb7c61e6..07060376 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } +integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2012fbf0..90836cff 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } +integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index c138e1af..c7542bac 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-219 +release: development-220 components: - - {"id":"deployment","version":"0.1.0-rc.268","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","digest":"sha256:6713e072a28bc33a0c6c5cdbf8da1d218e2e304a42e7947da15037e63a741fc5","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.268/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.269","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","digest":"sha256:ca0ee6b83e7812f96652a132939de1b85b1315a6dc0a52780b60c3912856d80b","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.269/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d" +digest: "sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f" From 88b633aa7457123710ad9441bda4fc23ba11a0db Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 16:29:41 -0400 Subject: [PATCH 259/501] release: lock published Deployment269 inventory (#450) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index bb7c61e6..07060376 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } +integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 2012fbf0..90836cff 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d' } +integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index c138e1af..c7542bac 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-219 +release: development-220 components: - - {"id":"deployment","version":"0.1.0-rc.268","commit":"273268baa49108bb3c6ca92846eda6361a3d5b90","digest":"sha256:6713e072a28bc33a0c6c5cdbf8da1d218e2e304a42e7947da15037e63a741fc5","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.268/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.269","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","digest":"sha256:ca0ee6b83e7812f96652a132939de1b85b1315a6dc0a52780b60c3912856d80b","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.269/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:1bdc2623af50a14f97c647af572f0ba58e751c66f162f1bc58c665fb039e119d" +digest: "sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f" From 8923a70b4b2071d8db14800f97f53a3d4ae1f5e4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 21:59:30 -0400 Subject: [PATCH 260/501] release: bind rc270 R2 signing prerequisite catalog --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7f0ba24e..92ec5f33 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc269", - "generation": 220, + "release": "0.1.0~rc270", + "generation": 221, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"f966291be80d41d0b31fbbddaecbf3aa9461d664"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","tag":"0.1.0-rc.269"}, + "platform": {"repository":"treeseed-ai/platform","commit":"88b633aa7457123710ad9441bda4fc23ba11a0db"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"6fd9ec0e19c27e8b0dccf496cf8bf927612ff2b6","tag":"0.1.0-rc.270"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T20:21:00.000Z" + "createdAt": "2026-09-08T02:01:00.000Z" } From 899b290cfec3d6f1e8b9337f91d8d7ad5541732e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 22:00:34 -0400 Subject: [PATCH 261/501] release: bind rc270 R2 signing prerequisite catalog (#451) --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7f0ba24e..92ec5f33 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc269", - "generation": 220, + "release": "0.1.0~rc270", + "generation": 221, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"f966291be80d41d0b31fbbddaecbf3aa9461d664"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","tag":"0.1.0-rc.269"}, + "platform": {"repository":"treeseed-ai/platform","commit":"88b633aa7457123710ad9441bda4fc23ba11a0db"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"6fd9ec0e19c27e8b0dccf496cf8bf927612ff2b6","tag":"0.1.0-rc.270"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-07T20:21:00.000Z" + "createdAt": "2026-09-08T02:01:00.000Z" } From fc8a727f7d8190e246b7168bf124afe8676ec96f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 22:13:53 -0400 Subject: [PATCH 262/501] release: bind API92 and rc271 for immutable R2 acceptance --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 92ec5f33..80f7ef3f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc270", - "generation": 221, + "release": "0.1.0~rc271", + "generation": 222, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"88b633aa7457123710ad9441bda4fc23ba11a0db"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"6fd9ec0e19c27e8b0dccf496cf8bf927612ff2b6","tag":"0.1.0-rc.270"}, + "platform": {"repository":"treeseed-ai/platform","commit":"899b290cfec3d6f1e8b9337f91d8d7ad5541732e"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","tag":"0.1.0-rc.271"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.92","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/treeseed-api-0.8.0-rc.92.tgz","sha256":"8e1c8fa9a1269b16a9ab7684d4d478bbbd2087d93a38c5fa079e0cc111aaeace"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc91-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/component-release.json","sha256":"076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/compose.yml","sha256":"7bf5d6e002e84a8b61af195bfb84274ccfd88b689fd35e22a0b8cc9d67eca0b0"}}]}, + {"componentId":"api","release":"0.8.0~rc92-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/component-release.json","sha256":"fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/compose.yml","sha256":"454ddf772d5a28fb2c1f556819720c76f7b61c3c899b3f9732b83bb937da051d"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T02:01:00.000Z" + "createdAt": "2026-09-08T02:12:00.000Z" } From 4b2b23298806109ff3c8bf8b5cc3da1f87b4f6f8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 22:14:53 -0400 Subject: [PATCH 263/501] release: bind API92 and rc271 for immutable R2 acceptance (#452) --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 92ec5f33..80f7ef3f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc270", - "generation": 221, + "release": "0.1.0~rc271", + "generation": 222, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"88b633aa7457123710ad9441bda4fc23ba11a0db"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"6fd9ec0e19c27e8b0dccf496cf8bf927612ff2b6","tag":"0.1.0-rc.270"}, + "platform": {"repository":"treeseed-ai/platform","commit":"899b290cfec3d6f1e8b9337f91d8d7ad5541732e"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","tag":"0.1.0-rc.271"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.91","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/treeseed-api-0.8.0-rc.91.tgz","sha256":"d78d0415bc09d35491ab3f2daecddfa1a154a3ea948267805ac0d6af037e51be"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.92","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/treeseed-api-0.8.0-rc.92.tgz","sha256":"8e1c8fa9a1269b16a9ab7684d4d478bbbd2087d93a38c5fa079e0cc111aaeace"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc91-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/component-release.json","sha256":"076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.91/compose.yml","sha256":"7bf5d6e002e84a8b61af195bfb84274ccfd88b689fd35e22a0b8cc9d67eca0b0"}}]}, + {"componentId":"api","release":"0.8.0~rc92-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/component-release.json","sha256":"fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/compose.yml","sha256":"454ddf772d5a28fb2c1f556819720c76f7b61c3c899b3f9732b83bb937da051d"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T02:01:00.000Z" + "createdAt": "2026-09-08T02:12:00.000Z" } From b51afffb47c24e8b32b1ee866626523e92d15341 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 22:19:45 -0400 Subject: [PATCH 264/501] release: seal generation222 API92 Deployment271 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 07060376..551b14d9 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } +integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 90836cff..32cc4456 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } +integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index c7542bac..1f689aa5 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,10 +1,10 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-220 +release: development-222 components: - - {"id":"deployment","version":"0.1.0-rc.269","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","digest":"sha256:ca0ee6b83e7812f96652a132939de1b85b1315a6dc0a52780b60c3912856d80b","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.269/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.271","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","digest":"sha256:3c47100d8c0dd7e89c6a7f0b6c8d98768e22fb269bfd0d2363699094899a986c","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.271/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} + - {"id":"api","version":"0.8.0-rc.92","commit":"9592f9ef3c97d9fd1eae6ca97db2d2999ae72c38","digest":"sha256:fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.92"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f" +digest: "sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251" From 79e6e3a419942716cd07be51aef3761fbbadc559 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 22:21:14 -0400 Subject: [PATCH 265/501] release: seal generation222 API92 Deployment271 inventory (#453) --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 07060376..551b14d9 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } +integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 90836cff..32cc4456 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f' } +integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index c7542bac..1f689aa5 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,10 +1,10 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-220 +release: development-222 components: - - {"id":"deployment","version":"0.1.0-rc.269","commit":"2d3a76c1fe2784f5195b6a41467f1acf2329e7aa","digest":"sha256:ca0ee6b83e7812f96652a132939de1b85b1315a6dc0a52780b60c3912856d80b","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.269/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.271","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","digest":"sha256:3c47100d8c0dd7e89c6a7f0b6c8d98768e22fb269bfd0d2363699094899a986c","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.271/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.91","commit":"2f9b4be1943e48e525a9c6a55bbf37c8193301d2","digest":"sha256:076591c2bb16b02226ab945c4916f70a195e77adbee52c3f3e3b2230b13f02aa","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.91"} + - {"id":"api","version":"0.8.0-rc.92","commit":"9592f9ef3c97d9fd1eae6ca97db2d2999ae72c38","digest":"sha256:fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.92"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:fb967a3c8b71b5495ec53a1906748b5e116c79aa128214e5d2581dd3c2531d6f" +digest: "sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251" From ebf0ab0a15141228927e1b662941ccbe06f263bf Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 23:37:05 -0400 Subject: [PATCH 266/501] fix: seed local capacity provider grants for integrated development --- seeds/treeseed.yaml | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index 8a3e74cf..83581259 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 7 +version: 8 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:928477997d71d9f462de94341b9c761c5acd6667e44e1aa9bb4fece0d63abb39 +digest: sha256:536079ba725ecfe61dc5eef0a812b0b98b029e9b3fd52e974e6e13e74e1b07f1 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -64,6 +64,32 @@ resources: - { key: 'repository:treeseed/skill-library', project: 'project:treeseed/skill', role: library, provider: github, owner: treeseed-ai, name: skill-library, gitUrl: 'https://github.com/treeseed-ai/skill-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'https://github.com/treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: .fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } runtime: - # Capacity, identity, enrollment, and credentials are runtime host inputs. They - # must not be captured in this portable repository seed. - capacityProviders: [] + # Local development adopts the approved provider or uses protected local + # enrollment. Identity, machine capacity and credentials remain runtime inputs. + # This local-only seed does not authorize production provider enrollment. + capacityProviders: + - key: capacity-provider:treeseed/local + team: team:treeseed + environments: [local] + approval: trusted-local-owner + manifestRef: https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json + manifestDigest: sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514 + requiredLanePurposes: [communication, platform, workday] + allowedModes: [planning, acting] + projects: + - project:treeseed/platform + - project:treeseed/deployment + - project:treeseed/api + - project:treeseed/treedx + - project:treeseed/sdk + - project:treeseed/ui + - project:treeseed/cli + - project:treeseed/core + - project:treeseed/admin + - project:treeseed/agent + - project:treeseed/reviewer + - project:treeseed/template-engineering + - project:treeseed/template-research + - project:treeseed/market + - project:treeseed/market-api + - project:treeseed/skill From 9e022f3a82e6311b4c57085b0279048cee09d8a8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 7 Sep 2026 23:39:45 -0400 Subject: [PATCH 267/501] fix: seed local capacity provider grants for integrated development (#455) --- seeds/treeseed.yaml | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index 8a3e74cf..83581259 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 7 +version: 8 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:928477997d71d9f462de94341b9c761c5acd6667e44e1aa9bb4fece0d63abb39 +digest: sha256:536079ba725ecfe61dc5eef0a812b0b98b029e9b3fd52e974e6e13e74e1b07f1 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -64,6 +64,32 @@ resources: - { key: 'repository:treeseed/skill-library', project: 'project:treeseed/skill', role: library, provider: github, owner: treeseed-ai, name: skill-library, gitUrl: 'https://github.com/treeseed-ai/skill-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'https://github.com/treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: .fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } runtime: - # Capacity, identity, enrollment, and credentials are runtime host inputs. They - # must not be captured in this portable repository seed. - capacityProviders: [] + # Local development adopts the approved provider or uses protected local + # enrollment. Identity, machine capacity and credentials remain runtime inputs. + # This local-only seed does not authorize production provider enrollment. + capacityProviders: + - key: capacity-provider:treeseed/local + team: team:treeseed + environments: [local] + approval: trusted-local-owner + manifestRef: https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json + manifestDigest: sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514 + requiredLanePurposes: [communication, platform, workday] + allowedModes: [planning, acting] + projects: + - project:treeseed/platform + - project:treeseed/deployment + - project:treeseed/api + - project:treeseed/treedx + - project:treeseed/sdk + - project:treeseed/ui + - project:treeseed/cli + - project:treeseed/core + - project:treeseed/admin + - project:treeseed/agent + - project:treeseed/reviewer + - project:treeseed/template-engineering + - project:treeseed/template-research + - project:treeseed/market + - project:treeseed/market-api + - project:treeseed/skill From c3823b0a233d9f3ab16d78693567363295466902 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 00:43:00 -0400 Subject: [PATCH 268/501] release: compose API rc93 for managed send acceptance --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 12 ++++++------ config/integrations/development.yaml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 551b14d9..386f56f6 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } +integration: { id: development, digest: 'sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 32cc4456..dbf5a8b4 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251' } +integration: { id: development, digest: 'sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 80f7ef3f..aed495a9 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc271", - "generation": 222, + "release": "0.1.0~rc272", + "generation": 223, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"899b290cfec3d6f1e8b9337f91d8d7ad5541732e"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","tag":"0.1.0-rc.271"}, + "platform": {"repository":"treeseed-ai/platform","commit":"9e022f3a82e6311b4c57085b0279048cee09d8a8"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"3d8362251b7611d5ec7113d887c195459692263f","tag":"0.1.0-rc.272"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.92","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/treeseed-api-0.8.0-rc.92.tgz","sha256":"8e1c8fa9a1269b16a9ab7684d4d478bbbd2087d93a38c5fa079e0cc111aaeace"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.93","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/treeseed-api-0.8.0-rc.93.tgz","sha256":"d062cbdc34c3d13f3eb0bf00563a94e4612fafdda306697a7fea29a66ffc236a"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc92-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/component-release.json","sha256":"fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.92/compose.yml","sha256":"454ddf772d5a28fb2c1f556819720c76f7b61c3c899b3f9732b83bb937da051d"}}]}, + {"componentId":"api","release":"0.8.0~rc93-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/component-release.json","sha256":"22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/compose.yml","sha256":"a232f981f451950080c129e8fa82a0bcd83d61b9f32c30c5a9838ab87a9712ad"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 1f689aa5..2cbe0d31 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,10 +1,10 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-222 +release: development-223 components: - {"id":"deployment","version":"0.1.0-rc.271","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","digest":"sha256:3c47100d8c0dd7e89c6a7f0b6c8d98768e22fb269bfd0d2363699094899a986c","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.271/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.92","commit":"9592f9ef3c97d9fd1eae6ca97db2d2999ae72c38","digest":"sha256:fe8f7393b29f5b850fc9d8e910ccaba5df67b8084be45b46da7e6a2925c95b13","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.92"} + - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:0a3b94d24751037e1295bad3a46d691660fae8f205d65403937d267132f1f251" +digest: "sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9" From 7523d30195c65fca252e04242bd573c97ab01683 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 00:49:25 -0400 Subject: [PATCH 269/501] release: pin published Deployment rc272 read-back --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 386f56f6..92d3a13e 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9' } +integration: { id: development, digest: 'sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index dbf5a8b4..600d1bbd 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9' } +integration: { id: development, digest: 'sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 2cbe0d31..b78c6676 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 release: development-223 components: - - {"id":"deployment","version":"0.1.0-rc.271","commit":"9de12a2c2eb6ca6ba88cf90d60ac0916592156ae","digest":"sha256:3c47100d8c0dd7e89c6a7f0b6c8d98768e22fb269bfd0d2363699094899a986c","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.271/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.272","commit":"3d8362251b7611d5ec7113d887c195459692263f","digest":"sha256:7814c1e8f1972b55fe805344c2aeea3ef6955909ebd174523b6a51d85f5fa5bb","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.272/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:5f8400f87bb56fb4b7a40776fc8d6451e13df817f547339de900a9023074baf9" +digest: "sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024" From 7f850d25272a41a9cab9ddaacfb58554e1d8581b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 01:21:00 -0400 Subject: [PATCH 270/501] release: compose Agent rc46 context measurement repair --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.release.json | 10 +++++----- config/integrations/development.yaml | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index 92d3a13e..f758ba3a 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024' } +integration: { id: development, digest: 'sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 600d1bbd..bc0992c5 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024' } +integration: { id: development, digest: 'sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index aed495a9..dd2ad0a2 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc272", - "generation": 223, + "release": "0.1.0~rc273", + "generation": 224, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"9e022f3a82e6311b4c57085b0279048cee09d8a8"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"3d8362251b7611d5ec7113d887c195459692263f","tag":"0.1.0-rc.272"}, + "platform": {"repository":"treeseed-ai/platform","commit":"279332bd49f7c23e6bf862cf294e2ae70f7a9792"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","tag":"0.1.0-rc.273"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.93","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/treeseed-api-0.8.0-rc.93.tgz","sha256":"d062cbdc34c3d13f3eb0bf00563a94e4612fafdda306697a7fea29a66ffc236a"}}, @@ -28,7 +28,7 @@ "components": [ {"componentId":"api","release":"0.8.0~rc93-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/component-release.json","sha256":"22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/compose.yml","sha256":"a232f981f451950080c129e8fa82a0bcd83d61b9f32c30c5a9838ab87a9712ad"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, - {"componentId":"agent","release":"0.13.0~rc45-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/component-release.json","sha256":"ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.45/compose.yml","sha256":"97c8aa52c2dcaae4c6fcd977a7f90a91845cceda2db2853b12dc70203a2cd226"}}]}, + {"componentId":"agent","release":"0.13.0~rc46-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/component-release.json","sha256":"ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/compose.yml","sha256":"d371430be08e4ee1a0e2db2c9b7e5e133a7edf96af6951f7e486dd8d23b6a84a"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index b78c6676..9ac3ddf4 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-223 +release: development-224 components: - {"id":"deployment","version":"0.1.0-rc.272","commit":"3d8362251b7611d5ec7113d887c195459692263f","digest":"sha256:7814c1e8f1972b55fe805344c2aeea3ef6955909ebd174523b6a51d85f5fa5bb","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.272/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - - {"id":"agent","version":"0.13.0-rc.45","commit":"df7520d41523be0a70e8c2b2d68531e5770a4271","digest":"sha256:ec93a341addcecc3dee9b7010a2f4d5923a326c36a91b120b729c9acab9ff514","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.45"} + - {"id":"agent","version":"0.13.0-rc.46","commit":"56f0dbf733fd9c08954b00960b9d595e0f4ad1d2","digest":"sha256:ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.46"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - {"id":"treeai-inference","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json"} - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:f054fabf92da0c3ac94d938696732b088509b4fc0d8710222f16ac9e66d44024" +digest: "sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056" From 719c223c76eca824633cc50849098271d5d0cd48 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 01:26:18 -0400 Subject: [PATCH 271/501] release: pin published Deployment rc273 read-back --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index f758ba3a..e23a0073 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056' } +integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index bc0992c5..e03f837a 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056' } +integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 9ac3ddf4..3d97879f 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-integration-lock/v1 release: development-224 components: - - {"id":"deployment","version":"0.1.0-rc.272","commit":"3d8362251b7611d5ec7113d887c195459692263f","digest":"sha256:7814c1e8f1972b55fe805344c2aeea3ef6955909ebd174523b6a51d85f5fa5bb","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.272/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.273","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","digest":"sha256:4a849d44b28b44e1c3a056612b4c29df69d6dd75e89e803cd83607072a2d2b32","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.273/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:96268e9d63d1417d9e081102b98d6ac464d50d7d60495d53074756150db99056" +digest: "sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721" From e3085e6110f6969d6ab1b9afa9bc60cb4a863411 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:27:50 -0400 Subject: [PATCH 272/501] release: compose generation 225 chat acceptance fixes --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index dd2ad0a2..d9b096d3 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc273", - "generation": 224, + "release": "0.1.0~rc274", + "generation": 225, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"279332bd49f7c23e6bf862cf294e2ae70f7a9792"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","tag":"0.1.0-rc.273"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e10c4c1e24f70953a1b8218bd82146f4344f0fc5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"c14d192182ce2d9a867a55e319629db971950888","tag":"0.1.0-rc.274"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.93","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/treeseed-api-0.8.0-rc.93.tgz","sha256":"d062cbdc34c3d13f3eb0bf00563a94e4612fafdda306697a7fea29a66ffc236a"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.94","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/treeseed-api-0.8.0-rc.94.tgz","sha256":"88208d3a874502e186a2ccdd2269a223f65aba820f4ffb11706c0d2c89e43144"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc93-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/component-release.json","sha256":"22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/compose.yml","sha256":"a232f981f451950080c129e8fa82a0bcd83d61b9f32c30c5a9838ab87a9712ad"}}]}, + {"componentId":"api","release":"0.8.0~rc94-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/component-release.json","sha256":"0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/compose.yml","sha256":"5d54e2bd35ba5295368f18052e6f27b918b983462b2489fe7d21d828595d2566"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, - {"componentId":"agent","release":"0.13.0~rc46-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/component-release.json","sha256":"ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/compose.yml","sha256":"d371430be08e4ee1a0e2db2c9b7e5e133a7edf96af6951f7e486dd8d23b6a84a"}}]}, + {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T02:12:00.000Z" + "createdAt": "2026-09-08T06:27:37.041Z" } From d734ae15921399b1c5e4cd7fd1dc6afa6a4ed7e3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:29:40 -0400 Subject: [PATCH 273/501] release: compose generation 225 chat acceptance fixes (#460) --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index dd2ad0a2..d9b096d3 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc273", - "generation": 224, + "release": "0.1.0~rc274", + "generation": 225, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"279332bd49f7c23e6bf862cf294e2ae70f7a9792"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","tag":"0.1.0-rc.273"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e10c4c1e24f70953a1b8218bd82146f4344f0fc5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"c14d192182ce2d9a867a55e319629db971950888","tag":"0.1.0-rc.274"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.93","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/treeseed-api-0.8.0-rc.93.tgz","sha256":"d062cbdc34c3d13f3eb0bf00563a94e4612fafdda306697a7fea29a66ffc236a"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.94","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/treeseed-api-0.8.0-rc.94.tgz","sha256":"88208d3a874502e186a2ccdd2269a223f65aba820f4ffb11706c0d2c89e43144"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,14 +26,14 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc93-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/component-release.json","sha256":"22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.93/compose.yml","sha256":"a232f981f451950080c129e8fa82a0bcd83d61b9f32c30c5a9838ab87a9712ad"}}]}, + {"componentId":"api","release":"0.8.0~rc94-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/component-release.json","sha256":"0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/compose.yml","sha256":"5d54e2bd35ba5295368f18052e6f27b918b983462b2489fe7d21d828595d2566"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, - {"componentId":"agent","release":"0.13.0~rc46-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/component-release.json","sha256":"ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.46/compose.yml","sha256":"d371430be08e4ee1a0e2db2c9b7e5e133a7edf96af6951f7e486dd8d23b6a84a"}}]}, + {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T02:12:00.000Z" + "createdAt": "2026-09-08T06:27:37.041Z" } From 3c9f66e451790521db8d85f6210d7de5853d442c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:36:53 -0400 Subject: [PATCH 274/501] release: bind generation 225 published catalog inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index e23a0073..ffd3f985 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } +integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e03f837a..1f645788 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } +integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 3d97879f..8d8ed309 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,12 +1,12 @@ schemaVersion: treeseed.platform-integration-lock/v1 release: development-224 components: - - {"id":"deployment","version":"0.1.0-rc.273","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","digest":"sha256:4a849d44b28b44e1c3a056612b4c29df69d6dd75e89e803cd83607072a2d2b32","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.273/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.274","commit":"c14d192182ce2d9a867a55e319629db971950888","digest":"sha256:3432f7d1a71c98d0b846f69c7d6d428cd3e7bcb434198c9cfe998966c343d16e","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.274/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} + - {"id":"api","version":"0.8.0-rc.94","commit":"b0e58a09eead48fbc39edd9537677f08510dc1e1","digest":"sha256:0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.94"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - - {"id":"agent","version":"0.13.0-rc.46","commit":"56f0dbf733fd9c08954b00960b9d595e0f4ad1d2","digest":"sha256:ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.46"} + - {"id":"agent","version":"0.13.0-rc.47","commit":"c342fd04f0504f1707eccde08827c2929084f2ec","digest":"sha256:2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.47"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - {"id":"treeai-inference","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json"} - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} From a1d5b65f84c54c23d0b8050bbf4e6767b0e724d0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:37:14 -0400 Subject: [PATCH 275/501] fix: bind inventory digest to published component list --- config/integrations/development.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 8d8ed309..049e7089 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721" +digest: sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796 From 9b887abf0567b11cd310510ec059a74a9de9b619 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:37:31 -0400 Subject: [PATCH 276/501] release: advance integration inventory generation label --- config/integrations/development.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 049e7089..b70a8f77 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,5 +1,5 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-224 +release: development-225 components: - {"id":"deployment","version":"0.1.0-rc.274","commit":"c14d192182ce2d9a867a55e319629db971950888","digest":"sha256:3432f7d1a71c98d0b846f69c7d6d428cd3e7bcb434198c9cfe998966c343d16e","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.274/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} From 061c21cadbd97050e4e24e8056bd2a3df5c1b9ff Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 02:38:44 -0400 Subject: [PATCH 277/501] release: bind published generation 225 inventory (#461) * release: bind generation 225 published catalog inventory * fix: bind inventory digest to published component list * release: advance integration inventory generation label --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index e23a0073..ffd3f985 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } +integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index e03f837a..1f645788 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721' } +integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 3d97879f..b70a8f77 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,15 +1,15 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-224 +release: development-225 components: - - {"id":"deployment","version":"0.1.0-rc.273","commit":"d403fcdb1fd6d20250115a38e2f883fabc2da664","digest":"sha256:4a849d44b28b44e1c3a056612b4c29df69d6dd75e89e803cd83607072a2d2b32","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.273/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.274","commit":"c14d192182ce2d9a867a55e319629db971950888","digest":"sha256:3432f7d1a71c98d0b846f69c7d6d428cd3e7bcb434198c9cfe998966c343d16e","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.274/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.93","commit":"8737cf68eb6e5b2cc9d813113eda3f4623229786","digest":"sha256:22adb0dcdca941e3510658ac518e6a3bd31fea4dae3d860ec963eb97b08f0172","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.93"} + - {"id":"api","version":"0.8.0-rc.94","commit":"b0e58a09eead48fbc39edd9537677f08510dc1e1","digest":"sha256:0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.94"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - - {"id":"agent","version":"0.13.0-rc.46","commit":"56f0dbf733fd9c08954b00960b9d595e0f4ad1d2","digest":"sha256:ce51d728c97a0b1fcdc813377a8dda8c6ac48faaf4ec4aff6d7d698ac386b42f","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.46"} + - {"id":"agent","version":"0.13.0-rc.47","commit":"c342fd04f0504f1707eccde08827c2929084f2ec","digest":"sha256:2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.47"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} - {"id":"treeai-inference","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json"} - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: "sha256:6aed54bbd111da0b82d727fafd4db01b360d0dda3e1e0e8172faa41f40f35721" +digest: sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796 From cf05193582ff268867e334b7f391589d0e1d10c4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 12:02:47 -0400 Subject: [PATCH 278/501] release: compose generation 226 with API rc95 --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index d9b096d3..3c01b284 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc274", - "generation": 225, + "release": "0.1.0~rc275", + "generation": 226, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"e10c4c1e24f70953a1b8218bd82146f4344f0fc5"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"c14d192182ce2d9a867a55e319629db971950888","tag":"0.1.0-rc.274"}, + "platform": {"repository":"treeseed-ai/platform","commit":"061c21cadbd97050e4e24e8056bd2a3df5c1b9ff"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2d2910242a96c2d2035a0ff40932b4d4f1b989b9","tag":"0.1.0-rc.275"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.94","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/treeseed-api-0.8.0-rc.94.tgz","sha256":"88208d3a874502e186a2ccdd2269a223f65aba820f4ffb11706c0d2c89e43144"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.95","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/treeseed-api-0.8.0-rc.95.tgz","sha256":"95de558ad63838a233084bcc39b3933723595321d47443737d6573b2c24e7a24"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc94-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/component-release.json","sha256":"0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.94/compose.yml","sha256":"5d54e2bd35ba5295368f18052e6f27b918b983462b2489fe7d21d828595d2566"}}]}, + {"componentId":"api","release":"0.8.0~rc95-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/component-release.json","sha256":"1ec9abdcbe415bd5fa40481369a85bbae89f291c3707cb5c79719e673dca7b11"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/compose.yml","sha256":"00c0e5df439ed3eca14970631ce2c3e42eb258481b8bf5ab6a6262eeeafac483"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, From 308b2e07553e81a0dcdcd5cd7b3307675ba05ba3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 12:03:16 -0400 Subject: [PATCH 279/501] release: record generation 226 composition timestamp --- config/integrations/development.release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 3c01b284..8b234588 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T06:27:37.041Z" + "createdAt": "2026-09-08T16:02:58Z" } From 9357b990273c94b714117bbe31cfe92e41884b67 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 12:09:17 -0400 Subject: [PATCH 280/501] release: bind published generation 226 inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index ffd3f985..fe246aca 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } +integration: { id: development, digest: 'sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 1f645788..14e96aa9 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796' } +integration: { id: development, digest: 'sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index b70a8f77..525a7463 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,10 +1,10 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-225 +release: development-226 components: - - {"id":"deployment","version":"0.1.0-rc.274","commit":"c14d192182ce2d9a867a55e319629db971950888","digest":"sha256:3432f7d1a71c98d0b846f69c7d6d428cd3e7bcb434198c9cfe998966c343d16e","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.274/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.275","commit":"2d2910242a96c2d2035a0ff40932b4d4f1b989b9","digest":"sha256:33000708eb6049ad641a7f069fcce60582fde7504da29324ec5dd60b8099afad","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.275/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.94","commit":"b0e58a09eead48fbc39edd9537677f08510dc1e1","digest":"sha256:0e27707ca35db334b39601e685effa4ba57f410998685648f53091aa8583a617","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.94"} + - {"id":"api","version":"0.8.0-rc.95","commit":"4a24282050675e2b64b733d4d6d6fd36f1988e9f","digest":"sha256:1ec9abdcbe415bd5fa40481369a85bbae89f291c3707cb5c79719e673dca7b11","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.95"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.47","commit":"c342fd04f0504f1707eccde08827c2929084f2ec","digest":"sha256:2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.47"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: sha256:729faa287093559ac3f2bd2f0fb347a7e5822d5335bf0552aec10d3d6a8bd796 +digest: sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c From 7f3a4cf6c74f65fa2107f92d071841d67af3f0fe Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 12:43:06 -0400 Subject: [PATCH 281/501] release: bind generation227 API rc96 migration repair --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8b234588..3d48a4f5 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc275", - "generation": 226, + "release": "0.1.0~rc276", + "generation": 227, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"061c21cadbd97050e4e24e8056bd2a3df5c1b9ff"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"2d2910242a96c2d2035a0ff40932b4d4f1b989b9","tag":"0.1.0-rc.275"}, + "platform": {"repository":"treeseed-ai/platform","commit":"f35c8f711cea1eab83c3d02357bb9aba4cafafb5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"58edba89e806171417bb8bfc5102ca086859c9b4","tag":"0.1.0-rc.276"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.95","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/treeseed-api-0.8.0-rc.95.tgz","sha256":"95de558ad63838a233084bcc39b3933723595321d47443737d6573b2c24e7a24"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.96","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/treeseed-api-0.8.0-rc.96.tgz","sha256":"03b1a52d53671033db7f0a8ca623494e48410c3aaaa3f0e44be2521edb20a2b8"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -26,7 +26,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"api","release":"0.8.0~rc95-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/component-release.json","sha256":"1ec9abdcbe415bd5fa40481369a85bbae89f291c3707cb5c79719e673dca7b11"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.95/compose.yml","sha256":"00c0e5df439ed3eca14970631ce2c3e42eb258481b8bf5ab6a6262eeeafac483"}}]}, + {"componentId":"api","release":"0.8.0~rc96-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/component-release.json","sha256":"fca9b1ecfd2deca01800ac9e96408fb8fb44ff53f30fd76eba16cd0a5ff433a2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/compose.yml","sha256":"d73cdbf86ed3c065b615fd4773159ce002f5240dea9bc76d91dfd9422fc4c6d5"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -35,5 +35,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T16:02:58Z" + "createdAt": "2026-09-08T16:42:27Z" } From e65cada4ce263d05696b1f48234d0e7018ed7cf9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 12:50:43 -0400 Subject: [PATCH 282/501] release: record generation227 published inventory --- config/hosts/capacity-provider.yaml | 2 +- config/hosts/development.yaml | 2 +- config/integrations/development.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/hosts/capacity-provider.yaml b/config/hosts/capacity-provider.yaml index fe246aca..ad9190c4 100644 --- a/config/hosts/capacity-provider.yaml +++ b/config/hosts/capacity-provider.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: capacity-provider profiles: [capacity-provider] -integration: { id: development, digest: 'sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c' } +integration: { id: development, digest: 'sha256:fa3879fb8ba6ca5b1736929a1947741cd4bce0ac3f6c36dca50980731ea1d9ed' } inputs: - { name: controlPlaneUrl, required: true, sensitive: false } - { name: teamRegistrationCode, required: true, sensitive: true } diff --git a/config/hosts/development.yaml b/config/hosts/development.yaml index 14e96aa9..2a9113ce 100644 --- a/config/hosts/development.yaml +++ b/config/hosts/development.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-host-template/v1 id: development profiles: [core] -integration: { id: development, digest: 'sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c' } +integration: { id: development, digest: 'sha256:fa3879fb8ba6ca5b1736929a1947741cd4bce0ac3f6c36dca50980731ea1d9ed' } inputs: - { name: hostIdentity, required: false, sensitive: false } - { name: initialAdministrator, required: false, sensitive: false } diff --git a/config/integrations/development.yaml b/config/integrations/development.yaml index 525a7463..7a225196 100644 --- a/config/integrations/development.yaml +++ b/config/integrations/development.yaml @@ -1,10 +1,10 @@ schemaVersion: treeseed.platform-integration-lock/v1 -release: development-226 +release: development-227 components: - - {"id":"deployment","version":"0.1.0-rc.275","commit":"2d2910242a96c2d2035a0ff40932b4d4f1b989b9","digest":"sha256:33000708eb6049ad641a7f069fcce60582fde7504da29324ec5dd60b8099afad","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.275/exact-head.json"} + - {"id":"deployment","version":"0.1.0-rc.276","commit":"58edba89e806171417bb8bfc5102ca086859c9b4","digest":"sha256:d8cebe781f3d05a71a088c2ade6d83af44343fbbedf04b8d89061b66e2628510","artifact":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.276/exact-head.json"} - {"id":"sdk","version":"0.13.0-rc.99","commit":"4f36c713a65931304bd0d92e73b6a743d7ceb85d","digest":"sha256:5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3","artifact":"https://github.com/treeseed-ai/sdk/releases/tag/0.13.0-rc.99"} - {"id":"cli","version":"0.13.0-rc.67","commit":"87f98871d1eff3b5b2a8caccd3f52f0446dfa31f","digest":"sha256:98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3","artifact":"https://github.com/treeseed-ai/cli/releases/tag/0.13.0-rc.67"} - - {"id":"api","version":"0.8.0-rc.95","commit":"4a24282050675e2b64b733d4d6d6fd36f1988e9f","digest":"sha256:1ec9abdcbe415bd5fa40481369a85bbae89f291c3707cb5c79719e673dca7b11","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.95"} + - {"id":"api","version":"0.8.0-rc.96","commit":"d360ef3d54500666e77ad330b28f6cc5a900a1a0","digest":"sha256:fca9b1ecfd2deca01800ac9e96408fb8fb44ff53f30fd76eba16cd0a5ff433a2","artifact":"https://github.com/treeseed-ai/api/releases/tag/0.8.0-rc.96"} - {"id":"admin","version":"0.12.59-rc.35","commit":"cff98fdb777385f50370d1dc4c959198375851a8","digest":"sha256:1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75","artifact":"https://github.com/treeseed-ai/admin/releases/tag/0.12.59-rc.35"} - {"id":"agent","version":"0.13.0-rc.47","commit":"c342fd04f0504f1707eccde08827c2929084f2ec","digest":"sha256:2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe","artifact":"https://github.com/treeseed-ai/agent/releases/tag/0.13.0-rc.47"} - {"id":"treedx","version":"0.3.0-rc.17","commit":"07b25f226743e7718b52813e87ea929cb82c32ca","digest":"sha256:53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169","artifact":"https://github.com/treeseed-ai/treedx/releases/tag/0.3.0-rc.17"} @@ -12,4 +12,4 @@ components: - {"id":"treeai-training","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json"} - {"id":"treeai-lab","version":"0.11.0-rc22","commit":"e3a462f30bfdc3539d3a5511932f28212f06a936","digest":"sha256:695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4","artifact":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json"} - {"id":"ui","version":"0.12.18-rc.19","commit":"ed8bbbc44a323650f13156e64b4fd3a919808971","digest":"sha256:9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519","artifact":"https://github.com/treeseed-ai/ui/releases/tag/0.12.18-rc.19"} -digest: sha256:8b8abb643f75c31a789da77f769fb8976015d30f087cf49918f51935c48c2a8c +digest: sha256:fa3879fb8ba6ca5b1736929a1947741cd4bce0ac3f6c36dca50980731ea1d9ed From e17c6abd3cbca8d3ceb77eee8bcde92840981326 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 8 Sep 2026 15:01:48 -0400 Subject: [PATCH 283/501] feat(identity): register source and library in the portable core seed --- profiles/core.yaml | 2 +- seeds/treeseed.yaml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/profiles/core.yaml b/profiles/core.yaml index ef614d3b..497c7fe5 100644 --- a/profiles/core.yaml +++ b/profiles/core.yaml @@ -2,5 +2,5 @@ schemaVersion: treeseed.platform-profile/v1 id: core extends: [] sources: - projects: [platform, deployment, api, treedx, sdk, ui, cli, core, admin, agent, reviewer, template-engineering, template-research, market, market-api, skill] + projects: [platform, deployment, api, treedx, sdk, ui, cli, core, admin, agent, reviewer, template-engineering, template-research, market, market-api, skill, identity] runtime: { targets: [released.all] } diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index 83581259..603d7d54 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 8 +version: 9 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:536079ba725ecfe61dc5eef0a812b0b98b029e9b3fd52e974e6e13e74e1b07f1 +digest: sha256:2fde78efade16fb7ad2385a9a764549988a603f1647619c2d2faf1a76446c19e resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -11,6 +11,7 @@ resources: # personal identities and host-specific membership bootstrap out of Platform. memberships: [] projects: + - { key: 'project:treeseed/identity', team: 'team:treeseed', slug: identity, name: TreeSeed Identity, description: Sovereign identity and session integration., kind: package, primaryRepository: 'repository:treeseed/identity', libraryRepository: 'repository:treeseed/identity-library', metadata: { packageId: '@treeseed/identity' } } - { key: 'project:treeseed/team', team: 'team:treeseed', slug: team, name: Team Library, description: Shared TreeSeed team knowledge and context., kind: content, libraryRepository: 'repository:treeseed/team-library' } - { key: 'project:treeseed/platform', team: 'team:treeseed', slug: platform, name: TreeSeed Platform, description: Public installer and portfolio integration workspace., kind: platform, primaryRepository: 'repository:treeseed/platform', libraryRepository: 'repository:treeseed/platform-library' } - { key: 'project:treeseed/deployment', team: 'team:treeseed', slug: deployment, name: TreeSeed Deployment, description: Debian bootstrap and host-manager integration system., kind: platform, primaryRepository: 'repository:treeseed/deployment', libraryRepository: 'repository:treeseed/deployment-library' } @@ -33,6 +34,7 @@ resources: - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, repositoryPolicy: *public_repo } + - { key: 'repository:treeseed/identity', project: 'project:treeseed/identity', role: primary, provider: github, owner: treeseed-ai, name: identity, gitUrl: 'https://github.com/treeseed-ai/identity.git', defaultBranch: main, checkoutPath: packages/identity, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/treedx', project: 'project:treeseed/treedx', role: primary, provider: github, owner: treeseed-ai, name: treedx, gitUrl: 'https://github.com/treeseed-ai/treedx.git', defaultBranch: main, checkoutPath: packages/treedx, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/sdk', project: 'project:treeseed/sdk', role: primary, provider: github, owner: treeseed-ai, name: sdk, gitUrl: 'https://github.com/treeseed-ai/sdk.git', defaultBranch: main, checkoutPath: packages/sdk, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/ui', project: 'project:treeseed/ui', role: primary, provider: github, owner: treeseed-ai, name: ui, gitUrl: 'https://github.com/treeseed-ai/ui.git', defaultBranch: main, checkoutPath: packages/ui, repositoryPolicy: *public_repo } @@ -49,6 +51,7 @@ resources: - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/api-library', project: 'project:treeseed/api', role: library, provider: github, owner: treeseed-ai, name: api-library, gitUrl: 'https://github.com/treeseed-ai/api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/identity-library', project: 'project:treeseed/identity', role: library, provider: github, owner: treeseed-ai, name: identity-library, gitUrl: 'https://github.com/treeseed-ai/identity-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/treedx-library', project: 'project:treeseed/treedx', role: library, provider: github, owner: treeseed-ai, name: treedx-library, gitUrl: 'https://github.com/treeseed-ai/treedx-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/sdk-library', project: 'project:treeseed/sdk', role: library, provider: github, owner: treeseed-ai, name: sdk-library, gitUrl: 'https://github.com/treeseed-ai/sdk-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/ui-library', project: 'project:treeseed/ui', role: library, provider: github, owner: treeseed-ai, name: ui-library, gitUrl: 'https://github.com/treeseed-ai/ui-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } From b3b49fb969708ed9aa9d842e8e985096149814b1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 01:38:30 -0400 Subject: [PATCH 284/501] docs: standardize handwritten implementation on TypeScript --- AGENTS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 35ea771c..3e4c15fe 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,10 @@ Every delivery follows `Issue -> branch -> pull request -> Actions -> staging me Human approval is reserved exclusively for pull requests targeting `main` as the production promotion boundary. Staging pull requests, candidate publication, staging deployments, infrastructure plans, reconciliation, and acceptance proceed through authorized agents and required automated checks without human-only approval gates. +## TypeScript source standard + +Use TypeScript for handwritten application, infrastructure, CLI, tooling, and test code across the integrated projects. JavaScript is generated build output, not a parallel source implementation. Keep strict type-checking enabled; do not use unchecked JavaScript or disable TypeScript checks to bypass this standard. Convert handwritten JavaScript when extending that implementation, and update its build and test entrypoints together. Keep configuration declarative. This does not authorize implementation in Platform: functional code still belongs in its owning package. + ## Development selection lifetime Local development selections persist until explicitly switched or stopped through `trsd`. Do not add session expiration, wall-clock watchdog shutdowns, or time-based fallback to released code. Preserve process ownership, readiness checks, explicit stop/drain behavior, and normal credential/token expiration; those are separate from development selection lifetime. From 37c87180f8b651ff05615a669fce745371efe2f8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 13:21:15 -0400 Subject: [PATCH 285/501] release: bind reboot recovery CLI72 and Deployment279 --- config/integrations/development.release.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 3d48a4f5..e7d86087 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc276", - "generation": 227, + "release": "0.1.0~rc279", + "generation": 228, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"f35c8f711cea1eab83c3d02357bb9aba4cafafb5"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"58edba89e806171417bb8bfc5102ca086859c9b4","tag":"0.1.0-rc.276"}, + "platform": {"repository":"treeseed-ai/platform","commit":"22386c6601ccadfe5fda49c7e4a060432fdc0c09"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"520a926f9d8429617ac98ce3a19b333de75e9c1a","tag":"0.1.0-rc.279"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.99","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.99.tgz","sha256":"5a52cb26df4a446f0f19fcae0ad8572945a94dbd2ec8885ecb1cc9ad9a7646f3"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, + {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, + {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, + {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.96","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/treeseed-api-0.8.0-rc.96.tgz","sha256":"03b1a52d53671033db7f0a8ca623494e48410c3aaaa3f0e44be2521edb20a2b8"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.67","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.67.tgz","sha256":"98e357650d8712d973e6ce2ecc04692899c0b32bcf424fde8415ba028d7891a3"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.72","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.72.tgz","sha256":"7de84e036d7947232bc8d86b1b69c9d8024beb91bcd611ba60956896cc3af63d"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } From 5218e879452a933df187f130760dac3adb6c337b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 13:34:57 -0400 Subject: [PATCH 286/501] release: generation 229 accepted development boot recovery --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e7d86087..5f29a69f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc279", - "generation": 228, + "release": "0.1.0~rc280", + "generation": 229, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"22386c6601ccadfe5fda49c7e4a060432fdc0c09"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"520a926f9d8429617ac98ce3a19b333de75e9c1a","tag":"0.1.0-rc.279"}, + "platform": {"repository":"treeseed-ai/platform","commit":"2bc4250af45924a2c0bedde5686198f0c86f4297"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"def50c6ebe78cbdbc257b667cd5aaf27c1042a22","tag":"0.1.0-rc.280"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, From d3b3035732b7c9a7f87c525274316144b2292714 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 14:10:52 -0400 Subject: [PATCH 287/501] fix(composition): pair cold-boot vault and dependency recovery --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 5f29a69f..4723b9a6 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc280", - "generation": 229, + "release": "0.1.0~rc281", + "generation": 230, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"2bc4250af45924a2c0bedde5686198f0c86f4297"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"def50c6ebe78cbdbc257b667cd5aaf27c1042a22","tag":"0.1.0-rc.280"}, + "platform": {"repository":"treeseed-ai/platform","commit":"bee4f063cc22f084a54f923801fa022fa9776038"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"52380c78276fafb85212c0e2eb2353e49d62d576","tag":"0.1.0-rc.281"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.72","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.72.tgz","sha256":"7de84e036d7947232bc8d86b1b69c9d8024beb91bcd611ba60956896cc3af63d"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.73","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.73.tgz","sha256":"3f89949e3affb600bc75700b9c87a22a15e851ca06cb1583de9833e43aef1f63"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } From 3ba6f346ef1dbc023df14c90cc038c537c5c84c9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 14:18:46 -0400 Subject: [PATCH 288/501] fix(composition): include provider credential reboot repair --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 4723b9a6..e5645001 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc281", - "generation": 230, + "release": "0.1.0~rc282", + "generation": 231, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"bee4f063cc22f084a54f923801fa022fa9776038"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"52380c78276fafb85212c0e2eb2353e49d62d576","tag":"0.1.0-rc.281"}, + "platform": {"repository":"treeseed-ai/platform","commit":"6d8da671ae9b0772ccbb487fad7310ca6d3632cd"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"57353bba7bc2c42b9651a17923f4fe3cc87592b7","tag":"0.1.0-rc.282"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, From a2a82e53fdae95108a62670e50f08a2d6b5616da Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 14:54:01 -0400 Subject: [PATCH 289/501] Select rc283 canonical Admin callback recovery for generation 232 --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e5645001..bb5fca3d 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc282", - "generation": 231, + "release": "0.1.0~rc283", + "generation": 232, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"6d8da671ae9b0772ccbb487fad7310ca6d3632cd"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"57353bba7bc2c42b9651a17923f4fe3cc87592b7","tag":"0.1.0-rc.282"}, + "platform": {"repository":"treeseed-ai/platform","commit":"21c1e969133a54c8ac9b5a69ec099ecc992189d2"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"a803cfbcfcd9e2195d0097f2e2d5ce321ac6b4ab","tag":"0.1.0-rc.283"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, From 813f5ead7a857af6aed1b016b91ec78afc8d14f7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 16:13:58 -0400 Subject: [PATCH 290/501] Bind generation233 to rc284 custody recovery and Identity rc17 --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index bb5fca3d..1c57b8d1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,14 +1,14 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc283", - "generation": 232, + "release": "0.1.0~rc284", + "generation": 233, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"21c1e969133a54c8ac9b5a69ec099ecc992189d2"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"a803cfbcfcd9e2195d0097f2e2d5ce321ac6b4ab","tag":"0.1.0-rc.283"}, + "platform": {"repository":"treeseed-ai/platform","commit":"da7b4ca3196652487d486adc702238411c62ea6e"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"0f3c805da98a1109ace3b09b01a69bdc6623c2dc","tag":"0.1.0-rc.284"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, - {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, + {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.17","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.17.tgz","sha256":"bbae7ea3f2ebd3043e2e9f71f0f531b650dc54bd344cecf586d342311d0c9d08"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.96","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/treeseed-api-0.8.0-rc.96.tgz","sha256":"03b1a52d53671033db7f0a8ca623494e48410c3aaaa3f0e44be2521edb20a2b8"}}, @@ -38,5 +38,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-08T16:42:27Z" + "createdAt": "2026-09-09T20:15:00Z" } From f039cb78d836e840e78a80339fefa3cff98b6ba7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 16:17:52 -0400 Subject: [PATCH 291/501] Preserve the published CLI exact Identity dependency --- config/integrations/development.release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1c57b8d1..2765c294 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -8,7 +8,7 @@ "deployment": {"repository":"treeseed-ai/deployment","commit":"0f3c805da98a1109ace3b09b01a69bdc6623c2dc","tag":"0.1.0-rc.284"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, - {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.17","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.17.tgz","sha256":"bbae7ea3f2ebd3043e2e9f71f0f531b650dc54bd344cecf586d342311d0c9d08"}}, + {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.96","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/treeseed-api-0.8.0-rc.96.tgz","sha256":"03b1a52d53671033db7f0a8ca623494e48410c3aaaa3f0e44be2521edb20a2b8"}}, From 0d3ab06bef4cc64d5e9ac070b6663c930a9f7dc1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 17:14:43 -0400 Subject: [PATCH 292/501] Select generation234 with CLI rc74 lifecycle recovery --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 2765c294..cb25c81e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc284", - "generation": 233, + "release": "0.1.0~rc285", + "generation": 234, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"da7b4ca3196652487d486adc702238411c62ea6e"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"0f3c805da98a1109ace3b09b01a69bdc6623c2dc","tag":"0.1.0-rc.284"}, + "platform": {"repository":"treeseed-ai/platform","commit":"d6e732845e1cd5c4aa16ae867edef5d8e401ff67"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"949d9ab70e69ed0a2f00f583e18cd264d2f610f1","tag":"0.1.0-rc.285"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.73","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.73.tgz","sha256":"3f89949e3affb600bc75700b9c87a22a15e851ca06cb1583de9833e43aef1f63"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.74","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.74.tgz","sha256":"67e2a5a5012c4062b4c9fd0a4787daf5171e016ec09457060bf2963b012d8bf3"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -38,5 +38,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-09T20:15:00Z" + "createdAt": "2026-09-09T21:14:17Z" } From 04c9946bfbcbdb2fa7c62b8c272019bfdc3545dc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 17:36:41 -0400 Subject: [PATCH 293/501] Select generation235 with queued boot recovery CLI rc75 --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index cb25c81e..d1734f93 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc285", - "generation": 234, + "release": "0.1.0~rc286", + "generation": 235, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"d6e732845e1cd5c4aa16ae867edef5d8e401ff67"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"949d9ab70e69ed0a2f00f583e18cd264d2f610f1","tag":"0.1.0-rc.285"}, + "platform": {"repository":"treeseed-ai/platform","commit":"18f78ef963c9de68a443e5ae23692942e925d2d6"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"4a3dc58ee3d0287895d952084fe9e4587f0fa963","tag":"0.1.0-rc.286"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.74","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.74.tgz","sha256":"67e2a5a5012c4062b4c9fd0a4787daf5171e016ec09457060bf2963b012d8bf3"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.75","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.75.tgz","sha256":"68d21d78fee6ddbf7a4679f8ff87341c2023af78a0571ad764357cc49d850895"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -38,5 +38,5 @@ {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-09T21:14:17Z" + "createdAt": "2026-09-09T21:36:00Z" } From e2d76875427f68bb3a7f9e8e3c1e9a9dde8aa2f5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 18:53:47 -0400 Subject: [PATCH 294/501] Compose generation236 with verified AI runtime digests and Deployment rc287 --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index d1734f93..86f19a26 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc286", - "generation": 235, + "release": "0.1.0~rc287", + "generation": 236, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"18f78ef963c9de68a443e5ae23692942e925d2d6"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"4a3dc58ee3d0287895d952084fe9e4587f0fa963","tag":"0.1.0-rc.286"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e5224f60a800c8ce4086697b5588c38bd7b82426"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"176d89e65e4175a094924cbe3462b97cf2b7799e","tag":"0.1.0-rc.287"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -34,9 +34,9 @@ {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-component-release.json","sha256":"bac812df51527df513e6a52668a64904c8554ab6be5019237e04e7f59c34129f"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-component-release.json","sha256":"07b32a13db84826ae75d7e7725ac99e78342151161bb8afd556762a8f0a5198b"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc22-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-component-release.json","sha256":"695f0461edae24c548b4765ff2572d00193c7c6d2212b8dcae68345ca0184df4"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc22/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-inference-component-release.json","sha256":"9c0a1a72afd09a94f33d516d21c8ccafe11cd0aeef57a1f78b318645403664eb"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-09T21:36:00Z" + "createdAt": "2026-09-09T22:52:46Z" } From 6eda01e6bcd93c1cddd50949b004488565829ffc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 9 Sep 2026 21:20:32 -0400 Subject: [PATCH 295/501] release: compose rc288 backup coordination as generation237 --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 86f19a26..904f4dab 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc287", - "generation": 236, + "release": "0.1.0~rc288", + "generation": 237, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"e5224f60a800c8ce4086697b5588c38bd7b82426"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"176d89e65e4175a094924cbe3462b97cf2b7799e","tag":"0.1.0-rc.287"}, + "platform": {"repository":"treeseed-ai/platform","commit":"3c3c999cd6e5616e663043f36254aa57b486e41c"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"70093494705d6e991083533ab6e6fa1522b9aad8","tag":"0.1.0-rc.288"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -38,5 +38,5 @@ {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-09T22:52:46Z" + "createdAt": "2026-09-10T01:20:11Z" } From a4f84aa3071f513dae7879f1f6c7cb564a421cd7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 02:18:17 -0400 Subject: [PATCH 296/501] chore(composition): add immutable shared PostgreSQL foundation in generation238 --- config/integrations/development.release.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 904f4dab..f92d7618 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc288", - "generation": 237, + "release": "0.1.0~rc289", + "generation": 238, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"3c3c999cd6e5616e663043f36254aa57b486e41c"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"70093494705d6e991083533ab6e6fa1522b9aad8","tag":"0.1.0-rc.288"}, + "platform": {"repository":"treeseed-ai/platform","commit":"f9b52d05bd450278b9d624e3249ce59b729ff9c4"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"142a10b0f6a9f2f716f37718488647950734a100","tag":"0.1.0-rc.289"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -29,6 +29,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ + {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, {"componentId":"api","release":"0.8.0~rc96-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/component-release.json","sha256":"fca9b1ecfd2deca01800ac9e96408fb8fb44ff53f30fd76eba16cd0a5ff433a2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/compose.yml","sha256":"d73cdbf86ed3c065b615fd4773159ce002f5240dea9bc76d91dfd9422fc4c6d5"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, @@ -38,5 +39,5 @@ {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-10T01:20:11Z" + "createdAt": "2026-09-10T06:17:49Z" } From ca325e16960177a764e2f082d0fc59003350206a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 03:04:58 -0400 Subject: [PATCH 297/501] chore(integration): select rc290 PostgreSQL foundation repair --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index f92d7618..eaaf7367 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc289", - "generation": 238, + "release": "0.1.0~rc290", + "generation": 239, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"f9b52d05bd450278b9d624e3249ce59b729ff9c4"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"142a10b0f6a9f2f716f37718488647950734a100","tag":"0.1.0-rc.289"}, + "platform": {"repository":"treeseed-ai/platform","commit":"493b86346def30c77672dadd8ddd6fb873795a76"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d9ba76d3a1ccc4bbdb521ff2cc9a9d4a2edcfc34","tag":"0.1.0-rc.290"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -39,5 +39,5 @@ {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-10T06:17:49Z" + "createdAt": "2026-09-10T07:04:31Z" } From a675fe289da239e1fe44265aaeece42dd4c4464e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 04:28:40 -0400 Subject: [PATCH 298/501] release: pin generation 240 PostgreSQL transfer operator chain --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index eaaf7367..6e00693b 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc290", - "generation": 239, + "release": "0.1.0~rc291", + "generation": 240, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"493b86346def30c77672dadd8ddd6fb873795a76"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d9ba76d3a1ccc4bbdb521ff2cc9a9d4a2edcfc34","tag":"0.1.0-rc.290"}, + "platform": {"repository":"treeseed-ai/platform","commit":"33ff287a13ce29316fea8b25d7e6053a46504045"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"ce4ccba365f66392a05774f531228c9143f859c6","tag":"0.1.0-rc.291"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.108","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.108.tgz","sha256":"26cc35256cb008e2e20ee90d7a54c69f403f9a20d318f730eb0173926e84693d"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.75","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.75.tgz","sha256":"68d21d78fee6ddbf7a4679f8ff87341c2023af78a0571ad764357cc49d850895"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.76","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.76.tgz","sha256":"145d2c40a6fccb64bd9fcfce30c8fb54bd1e931314624ea963ed284588221e94"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -39,5 +39,5 @@ {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} ], - "createdAt": "2026-09-10T07:04:31Z" + "createdAt": "2026-09-10T08:28:00Z" } From e3da8b555a3f8eb94bb96ef21e099e3fa0e5c95e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 04:45:21 -0400 Subject: [PATCH 299/501] release: pin shared PostgreSQL API and AI consumers in generation 241 --- config/integrations/development.release.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 6e00693b..e98954ce 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc291", - "generation": 240, + "release": "0.1.0~rc292", + "generation": 241, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"33ff287a13ce29316fea8b25d7e6053a46504045"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"ce4ccba365f66392a05774f531228c9143f859c6","tag":"0.1.0-rc.291"}, + "platform": {"repository":"treeseed-ai/platform","commit":"2d8982013ed4803270c71a0bac42bb2a630e6a41"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"e245d021be91f5528259b0a56d1e99413fcd78f4","tag":"0.1.0-rc.292"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.96","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/treeseed-api-0.8.0-rc.96.tgz","sha256":"03b1a52d53671033db7f0a8ca623494e48410c3aaaa3f0e44be2521edb20a2b8"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.97","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/treeseed-api-0.8.0-rc.97.tgz","sha256":"b0100a6f248b443d5a800b63eb9bed43a273fe7a4978fa09dd318347b952ff0e"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, @@ -30,14 +30,14 @@ ], "components": [ {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc96-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/component-release.json","sha256":"fca9b1ecfd2deca01800ac9e96408fb8fb44ff53f30fd76eba16cd0a5ff433a2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.96/compose.yml","sha256":"d73cdbf86ed3c065b615fd4773159ce002f5240dea9bc76d91dfd9422fc4c6d5"}}]}, + {"componentId":"api","release":"0.8.0~rc97-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/component-release.json","sha256":"52673f3ae854af67f68ee43661ae8b4a5f826b36fd052f2f5279a47c66b76017"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/compose.yml","sha256":"9402d2dd9bdb930bd845b1815141e26fc4f221a188077fc7662b6ea90e735039"}}]}, {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, - {"componentId":"ai-inference","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-inference-component-release.json","sha256":"9c0a1a72afd09a94f33d516d21c8ccafe11cd0aeef57a1f78b318645403664eb"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-inference-compose.yml","sha256":"1b47520b621bd427bd8c26a3bd180a28ccbd51588a5935a098021459c7756908"}}]}, - {"componentId":"ai-training","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-component-release.json","sha256":"b02939951e9d2eaed22a0347c1e84c0c5340f5c63b0e852c05867a86f7b32889"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-training-compose.yml","sha256":"4b6bbb198ab495baf1e168e83270ff1ba1bab97414cc476a185ee880054c66d6"}}]}, - {"componentId":"ai-lab","release":"0.11.0~rc23-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-component-release.json","sha256":"14daae1a08b85b892d4cde00461e83463f1bad40149b2168d379ae404f095079"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc23/ai-lab-compose.yml","sha256":"5a226e2006f5bebb670bccb2a8e0cd288d02fc996a2297f3ade656a28fdf7c89"}}]} + {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, + {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, + {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T08:28:00Z" + "createdAt": "2026-09-10T08:45:00Z" } From f79ba3a40627042371172b071b422c0f9aec5bfa Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 06:28:07 -0400 Subject: [PATCH 300/501] docs: suspend human review gates during pre-launch integration --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 3e4c15fe..e9740cc2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ Conserve human and AI capacity by optimizing for verified outcomes rather than r Every delivery follows `Issue -> branch -> pull request -> Actions -> staging merge -> release/read-back -> Platform composition -> managed acceptance -> main/production`. Before branching, merging, or releasing, fetch and verify the exact protected-branch head. Do not create undocumented side channels for plans, progress, or acceptance. -Human approval is reserved exclusively for pull requests targeting `main` as the production promotion boundary. Staging pull requests, candidate publication, staging deployments, infrastructure plans, reconciliation, and acceptance proceed through authorized agents and required automated checks without human-only approval gates. +During pre-launch integration, no human approval or review is required for pull requests (including `main`), releases, deployments, infrastructure plans, reconciliation, or acceptance. Authorized agents may merge after required automated checks pass; retain pull requests, exact-ref custody, and all unrelated protections. This temporary policy is tracked in Platform #489. Before public production launch, establish a separate reviewer identity and explicitly restore required human review for PRs to `main`; verify the restored settings before promoting a public production release. Do not reintroduce human-only gates for staging or non-production work. ## TypeScript source standard From ffc856f6cd6a4148719b1833383b5dceff083f71 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 06:48:52 -0400 Subject: [PATCH 301/501] release: compose rc293 for live shared PostgreSQL cutover --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e98954ce..8c55af78 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc292", - "generation": 241, + "release": "0.1.0~rc293", + "generation": 242, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"2d8982013ed4803270c71a0bac42bb2a630e6a41"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"e245d021be91f5528259b0a56d1e99413fcd78f4","tag":"0.1.0-rc.292"}, + "platform": {"repository":"treeseed-ai/platform","commit":"06841624862546c61fd0d40bcf724150eee00571"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d4dca81b2045118e579b91ccf6083a6c97e3a595","tag":"0.1.0-rc.293"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -31,13 +31,13 @@ "components": [ {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, {"componentId":"api","release":"0.8.0~rc97-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/component-release.json","sha256":"52673f3ae854af67f68ee43661ae8b4a5f826b36fd052f2f5279a47c66b76017"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/compose.yml","sha256":"9402d2dd9bdb930bd845b1815141e26fc4f221a188077fc7662b6ea90e735039"}}]}, - {"componentId":"admin","release":"0.12.59~rc35-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release.json","sha256":"1911171cffcb12cff350ac99cd027928eb8a193f6c6d536eb082ea762c4a4d75"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, - {"componentId":"agent","release":"0.13.0~rc47-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/component-release.json","sha256":"2450729922300c13da1b1e77fa99bb954ad1a26561e6fae10a7c4cb52c4d7cbe"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.47/compose.yml","sha256":"2c2f3ae22367258c91c9b0436a3c01ede8e383197582178d60c27258c9214231"}}]}, + {"componentId":"admin","release":"0.12.59~rc35-2","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release-r2.json","sha256":"3f7613e88b1d4e4c17ac99faca877dc0896d8e7434d37163d40b97f9c89a9c71"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, + {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, - { "componentId": "lab", "release": "0.1.0~rc34-1", "manifest": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/component-release.json", "sha256": "553e9bcfd99755a5f55eae2b59da7c3be6c35e9dcb985515bce79ed2d1a399a7" }, "files": [{ "path": "compose.yml", "artifact": { "url": "https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.34/compose.yml", "sha256": "ef646932604e580762c1a26a1f6fb973c5d669b141158f6be930f05c5e965115" } }] }, + {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T08:45:00Z" + "createdAt": "2026-09-10T10:50:00Z" } From 31987cb997cd5ed17f95f28f5b512e137b401f49 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 07:47:33 -0400 Subject: [PATCH 302/501] release: compose generation243 with managed Identity service --- config/integrations/development.release.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8c55af78..e9a3a650 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc293", - "generation": 242, + "release": "0.1.0~rc294", + "generation": 243, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"06841624862546c61fd0d40bcf724150eee00571"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d4dca81b2045118e579b91ccf6083a6c97e3a595","tag":"0.1.0-rc.293"}, + "platform": {"repository":"treeseed-ai/platform","commit":"d60d6e4fd434f6f618e88031c3f13e4d66d328ab"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"430a82f06f512a4fab61c29a937d92b4b9a09be2","tag":"0.1.0-rc.294"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, @@ -29,6 +29,7 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ + {"componentId":"identity","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-component-release.json","sha256":"f1ba1c61571eb6de6f8508d1d0fed6e5a224e3711922cd80f0eae2326066b4d2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-compose.yml","sha256":"d773d1f1b506bd8d6bd8e3cdd421b8f3a88ee45fab14359cbbd0d40b317ea36d"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, {"componentId":"api","release":"0.8.0~rc97-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/component-release.json","sha256":"52673f3ae854af67f68ee43661ae8b4a5f826b36fd052f2f5279a47c66b76017"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/compose.yml","sha256":"9402d2dd9bdb930bd845b1815141e26fc4f221a188077fc7662b6ea90e735039"}}]}, {"componentId":"admin","release":"0.12.59~rc35-2","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release-r2.json","sha256":"3f7613e88b1d4e4c17ac99faca877dc0896d8e7434d37163d40b97f9c89a9c71"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, @@ -39,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T10:50:00Z" + "createdAt": "2026-09-10T11:47:00Z" } From 98ed918df0511ac6e53fa2232fbcf7cc19e4bc0a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 09:12:34 -0400 Subject: [PATCH 303/501] chore(integration): select generation 244 Identity live cutover --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e9a3a650..75de2e00 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,20 +1,20 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc294", - "generation": 243, + "release": "0.1.0~rc295", + "generation": 244, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"d60d6e4fd434f6f618e88031c3f13e4d66d328ab"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"430a82f06f512a4fab61c29a937d92b4b9a09be2","tag":"0.1.0-rc.294"}, + "platform": {"repository":"treeseed-ai/platform","commit":"2331a1ce826637cc1a7b54aea50d5e4e01fa382f"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"e805386203c155c027adecd935e0ed63ec5b73bc","tag":"0.1.0-rc.295"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, - {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.16","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.16.tgz","sha256":"cd124338b5e45153a1dcd220f1a309218f99cb80d55653136a8ec0eb34619f2b"}}, + {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.18.tgz","sha256":"3ff2b6de60a8be46a58d06ffb06f9db02a632c50705a426042bba32e34ecc070"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.97","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/treeseed-api-0.8.0-rc.97.tgz","sha256":"b0100a6f248b443d5a800b63eb9bed43a273fe7a4978fa09dd318347b952ff0e"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.98","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/treeseed-api-0.8.0-rc.98.tgz","sha256":"f167cbf775808e4bfb225b7271a580480c5cfdc8e89767661fb8579fd9ddba36"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.35","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/treeseed-admin-0.12.59-rc.35.tgz","sha256":"a1b008a3e70cda98494591b111857d8dfe72232d9f977bccb4fba64219da8dd7"}}, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.37","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/treeseed-admin-0.12.59-rc.37.tgz","sha256":"810a6b07fc418186bc4d9012bedf3a096f93824dc8ebe47e17f1a43ba216db86"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.76","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.76.tgz","sha256":"145d2c40a6fccb64bd9fcfce30c8fb54bd1e931314624ea963ed284588221e94"}}, @@ -31,8 +31,8 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-component-release.json","sha256":"f1ba1c61571eb6de6f8508d1d0fed6e5a224e3711922cd80f0eae2326066b4d2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-compose.yml","sha256":"d773d1f1b506bd8d6bd8e3cdd421b8f3a88ee45fab14359cbbd0d40b317ea36d"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc97-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/component-release.json","sha256":"52673f3ae854af67f68ee43661ae8b4a5f826b36fd052f2f5279a47c66b76017"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.97/compose.yml","sha256":"9402d2dd9bdb930bd845b1815141e26fc4f221a188077fc7662b6ea90e735039"}}]}, - {"componentId":"admin","release":"0.12.59~rc35-2","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/component-release-r2.json","sha256":"3f7613e88b1d4e4c17ac99faca877dc0896d8e7434d37163d40b97f9c89a9c71"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.35/compose.yml","sha256":"c6c9be83c48aa7fc599e0355f444697ff196d200d76464c4d956e115727295da"}}]}, + {"componentId":"api","release":"0.8.0~rc98-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/component-release.json","sha256":"31ef5cd6242064d45c3b7d666a2046e9770689a6fe3fef2e865d26db10b973ef"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/compose.yml","sha256":"0fffd7ce7f6244ba9acaa02318affbb6ce18e659e4e6cadbacf9e4a4e16327c3"}}]}, + {"componentId":"admin","release":"0.12.59~rc37-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/component-release.json","sha256":"d910f39dd83faba69087b11e30faa9a8466e073e1a8671680e785de11682774e"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/compose.yml","sha256":"f3f34c3d38e42d750785b230515d2ee39bbc35805f0c413dcd8dcf816912e5fd"}}]}, {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, From f016eaee9c17b540922e9883b5ae204dcea4b329 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 09:23:09 -0400 Subject: [PATCH 304/501] fix(integration): align generation 245 CLI and Identity payloads --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 75de2e00..052dfee7 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,10 +1,10 @@ { "schemaVersion": "treeseed.integration-release/v1", "release": "0.1.0~rc295", - "generation": 244, + "generation": 245, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"2331a1ce826637cc1a7b54aea50d5e4e01fa382f"}, + "platform": {"repository":"treeseed-ai/platform","commit":"7048bb2f33968542646027ee4b1d3cb8f09a4851"}, "deployment": {"repository":"treeseed-ai/deployment","commit":"e805386203c155c027adecd935e0ed63ec5b73bc","tag":"0.1.0-rc.295"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.37","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/treeseed-admin-0.12.59-rc.37.tgz","sha256":"810a6b07fc418186bc4d9012bedf3a096f93824dc8ebe47e17f1a43ba216db86"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.76","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.76.tgz","sha256":"145d2c40a6fccb64bd9fcfce30c8fb54bd1e931314624ea963ed284588221e94"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.77","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.77.tgz","sha256":"fe58178eed3624dfc33dbe5eb98b56c58d7041b1827175a7b3d77decb7554982"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } From f4ec3e452051cdd65c40252cb9d0771fc40a1717 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 10:04:16 -0400 Subject: [PATCH 305/501] fix: select Identity import repair in generation 246 --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 052dfee7..30e61938 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc295", - "generation": 245, + "release": "0.1.0~rc296", + "generation": 246, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"7048bb2f33968542646027ee4b1d3cb8f09a4851"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"e805386203c155c027adecd935e0ed63ec5b73bc","tag":"0.1.0-rc.295"}, + "platform": {"repository":"treeseed-ai/platform","commit":"2e62b802c27fed6c051b78e6780157b1e68d5dbf"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"dfa678ded1a2b80b7afc0b5bb0904cbf6295c4c2","tag":"0.1.0-rc.296"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.18.tgz","sha256":"3ff2b6de60a8be46a58d06ffb06f9db02a632c50705a426042bba32e34ecc070"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.98","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/treeseed-api-0.8.0-rc.98.tgz","sha256":"f167cbf775808e4bfb225b7271a580480c5cfdc8e89767661fb8579fd9ddba36"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.99","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/treeseed-api-0.8.0-rc.99.tgz","sha256":"8d8b464d237412b84e1a75c79e1304496424f68d170b0975f7bf142561af15ac"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.37","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/treeseed-admin-0.12.59-rc.37.tgz","sha256":"810a6b07fc418186bc4d9012bedf3a096f93824dc8ebe47e17f1a43ba216db86"}}, @@ -31,7 +31,7 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-component-release.json","sha256":"f1ba1c61571eb6de6f8508d1d0fed6e5a224e3711922cd80f0eae2326066b4d2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-compose.yml","sha256":"d773d1f1b506bd8d6bd8e3cdd421b8f3a88ee45fab14359cbbd0d40b317ea36d"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc98-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/component-release.json","sha256":"31ef5cd6242064d45c3b7d666a2046e9770689a6fe3fef2e865d26db10b973ef"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.98/compose.yml","sha256":"0fffd7ce7f6244ba9acaa02318affbb6ce18e659e4e6cadbacf9e4a4e16327c3"}}]}, + {"componentId":"api","release":"0.8.0~rc99-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/component-release.json","sha256":"6b45b304584c2309b7d760aa2872c7eb889c091709e2000ec320fa53dc006b79"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/compose.yml","sha256":"6ba1726f301916aa6612b441cde4ff8eb338c516a53fd930076bfc00c801b2e6"}}]}, {"componentId":"admin","release":"0.12.59~rc37-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/component-release.json","sha256":"d910f39dd83faba69087b11e30faa9a8466e073e1a8671680e785de11682774e"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/compose.yml","sha256":"f3f34c3d38e42d750785b230515d2ee39bbc35805f0c413dcd8dcf816912e5fd"}}]}, {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, From 041ebbb549bbdfe0e75f392863eb1e75e6292298 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 10:35:13 -0400 Subject: [PATCH 306/501] fix: release accepted Identity custody transition in generation 247 --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 30e61938..a5239bea 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc296", - "generation": 246, + "release": "0.1.0~rc297", + "generation": 247, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"2e62b802c27fed6c051b78e6780157b1e68d5dbf"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"dfa678ded1a2b80b7afc0b5bb0904cbf6295c4c2","tag":"0.1.0-rc.296"}, + "platform": {"repository":"treeseed-ai/platform","commit":"b75a80a03522c67b91c75ff2a4a2ccfa02ba3003"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"6a28e7c62859415e37d7176b2b52f10c7899e281","tag":"0.1.0-rc.297"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.18.tgz","sha256":"3ff2b6de60a8be46a58d06ffb06f9db02a632c50705a426042bba32e34ecc070"}}, From f013e3ffaeae112179fa7c35e8128ff2b32f2c84 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 12:31:50 -0400 Subject: [PATCH 307/501] chore(release): compose branded Identity authentication generation 248 --- config/integrations/development.release.json | 26 +++++------ docs/identity-authentication.md | 47 ++++++++++++++++++++ 2 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 docs/identity-authentication.md diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a5239bea..beee9f19 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc297", - "generation": 247, + "release": "0.1.0~rc298", + "generation": 248, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b75a80a03522c67b91c75ff2a4a2ccfa02ba3003"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"6a28e7c62859415e37d7176b2b52f10c7899e281","tag":"0.1.0-rc.297"}, + "platform": {"repository":"treeseed-ai/platform","commit":"685e4cbb6c712b6d3dabf03746d681eab5984864"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"e56f85affd5684638175ecccdb615d0c70099f94","tag":"0.1.0-rc.298"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.109","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.109.tgz","sha256":"ce529374703f581734bdb0edf5332e9fcc6ceecb165fdd4b760efc16367f7f1e"}}, - {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.18","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.18.tgz","sha256":"3ff2b6de60a8be46a58d06ffb06f9db02a632c50705a426042bba32e34ecc070"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.110","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.110.tgz","sha256":"991802c1c61e92077c48acaf47c167bdd2e86f61a93b6d42ba84e161a49de359"}}, + {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.99","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/treeseed-api-0.8.0-rc.99.tgz","sha256":"8d8b464d237412b84e1a75c79e1304496424f68d170b0975f7bf142561af15ac"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.100","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/treeseed-api-0.8.0-rc.100.tgz","sha256":"2dc1b6c60065b6414d5eb56236593759bb19d252289ef19f0659c52685a52d33"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, - {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.37","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/treeseed-admin-0.12.59-rc.37.tgz","sha256":"810a6b07fc418186bc4d9012bedf3a096f93824dc8ebe47e17f1a43ba216db86"}}, + {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.77","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.77.tgz","sha256":"fe58178eed3624dfc33dbe5eb98b56c58d7041b1827175a7b3d77decb7554982"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.79","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.79.tgz","sha256":"da6e892c93a633a6d8d7adf55b971dbf68e238cd943dc498443f7fc77ac0afcc"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -29,10 +29,10 @@ { "id": "treeai", "artifact": { "url": "https://raw.githubusercontent.com/treeseed-ai/platform/e54a28744253d220a44119ee700854fdf76c3e9d/config/initialization/treeai.json", "sha256": "bbe2083772140e0abe883d3787fc43cd4823b26c426d89e48805b91c80440191" } } ], "components": [ - {"componentId":"identity","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-component-release.json","sha256":"f1ba1c61571eb6de6f8508d1d0fed6e5a224e3711922cd80f0eae2326066b4d2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/identity-compose.yml","sha256":"d773d1f1b506bd8d6bd8e3cdd421b8f3a88ee45fab14359cbbd0d40b317ea36d"}}]}, + {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc99-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/component-release.json","sha256":"6b45b304584c2309b7d760aa2872c7eb889c091709e2000ec320fa53dc006b79"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.99/compose.yml","sha256":"6ba1726f301916aa6612b441cde4ff8eb338c516a53fd930076bfc00c801b2e6"}}]}, - {"componentId":"admin","release":"0.12.59~rc37-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/component-release.json","sha256":"d910f39dd83faba69087b11e30faa9a8466e073e1a8671680e785de11682774e"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.37/compose.yml","sha256":"f3f34c3d38e42d750785b230515d2ee39bbc35805f0c413dcd8dcf816912e5fd"}}]}, + {"componentId":"api","release":"0.8.0~rc100-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/component-release.json","sha256":"ab1a263ecb1c62dddbf6acd8ff2eb40517c3976a5139161d7f88ea1d85cf72d6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/compose.yml","sha256":"6e6a54e5a00567c42898ad50496eab5547961f418d4d0cdbc143571c616c51be"}}]}, + {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T11:47:00Z" + "createdAt": "2026-09-10T16:30:00Z" } diff --git a/docs/identity-authentication.md b/docs/identity-authentication.md new file mode 100644 index 00000000..39d87ac6 --- /dev/null +++ b/docs/identity-authentication.md @@ -0,0 +1,47 @@ +# Managed authentication + +Admin redirects to the independently managed Identity service. Keycloak supplies +the password, MFA, registration, and recovery flows; applications do not collect +passwords. Each application retains its own host-scoped session. + +The TreeSeed login theme belongs to Identity and reuses the UI package's logo, +design tokens, and authentication styles. Deployment installs those exact +published assets read-only. Platform does not build or implement the theme. +Light/dark appearance currently follows the operating-system preference; saved +cross-application theme preferences are not yet synchronized. + +## Registration and recovery policy + +The installation's managed host configuration selects public registration: + +```json +{ + "registrationAllowed": true, + "resetPasswordAllowed": true, + "mailTransport": "existing" +} +``` + +This is the Identity component's `configuration.authentication` value. The API's +`configuration.identityRuntime.registration.enabled` must match +`registrationAllowed`. Internal installations may set both registration flags +to false without disabling existing users' sign-in or password recovery. + +`existing` preserves the configured SMTP credentials and requires an existing +TLS-enabled email transport before enabling registration or recovery. Supply +that transport through managed installation authority, never Platform Git. + +For local staging only, `local-mailpit` selects the enabled Lab's mail capture +service. It does not deliver mail to a user's real inbox. Verification and reset +messages contain account-access links; treat the local mail viewer as privileged +test infrastructure. This transport is rejected for production. + +New registration requires verified email before the API provisions a local +principal. Identity is keyed by issuer and subject, not email. A matching email +does not merge accounts or confer team membership, ownership, or administrator +permissions. Existing principal mappings remain unchanged. + +Apply changes with `trsd host config plan` followed by `trsd host config apply`. +Registration is not activated merely by updating packages. Preserve the +coordinated application/database restore point; never restore an old +authentication writer onto incompatible migrated data. From 9402c2df41ba15b22bff1ed275c34ad8dcd30205 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 10 Sep 2026 14:56:10 -0400 Subject: [PATCH 308/501] fix(seed): declare all first-party repositories public --- AGENTS.md | 4 ++++ docs/package-ownership.md | 4 ++-- seeds/treeseed.yaml | 10 +++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e9740cc2..ba41b6a1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,6 +2,10 @@ This is the public TreeSeed installer and integration workspace. Preserve independent package builds and route infrastructure changes through SDK reconciliation and `trsd`. Market and Market API are first-party portfolio projects governed through the same seed, reconciliation, and exact-ref custody model as the other TreeSeed repositories. Their hosted deployment remains fail-closed until the reviewed OpenTofu topology restores it. +## First-party repository visibility and licensing + +All TreeSeed repositories are public, including Team Library and Market API. First-party repositories use Apache-2.0 except API and Market API, which use AGPLv3. Preserve their exact license notices. This policy does not relicense third-party dependencies or make customer repositories public. The TreeSeed seed must declare public repository visibility; license choice is independent of visibility. + ## Efficient delivery is mandatory Conserve human and AI capacity by optimizing for verified outcomes rather than repeated discussion or duplicated evidence. GitHub Issues are the planning and status authority, GitHub Actions are the verification authority, and agents must not post routine issue or pull-request comments. Keep the current decision-complete contract and evidence table in the Issue body; put implementation context in commits and the pull-request description; retain detailed logs as Actions artifacts. Read only the exact context needed, batch independent reads and checks, reuse immutable receipts, inspect failed jobs rather than rerunning successful work, and batch known defects into one replacement release candidate before repeating expensive activation. Stop at real authority boundaries instead of spending quota speculating around them. diff --git a/docs/package-ownership.md b/docs/package-ownership.md index c05808bc..7c309330 100644 --- a/docs/package-ownership.md +++ b/docs/package-ownership.md @@ -217,9 +217,9 @@ Public npm package publish tokens belong in the package repository GitHub `produ The target ecommerce architecture is split by surface. Existing API/Admin commerce code is migration inventory, not target ownership: - `treeseed-ai/market` owns buyer-facing Market and ecosystem-governance presentation, including the extracted `/market` and `/app/market` families. -- private `treeseed-ai/market-api` owns vendors, products, offers, prices, ownership, stewardship, contributions, ecosystem-governance policies, orders, payment groups, subscriptions, entitlements, refunds, fulfillment, scoped services, capacity listings/inquiries, marketplace aggregation, seller monitoring, webhooks, and commercial-license entitlements under `/v1/market/**`. +- Public, AGPLv3-licensed `treeseed-ai/market-api` owns vendors, products, offers, prices, ownership, stewardship, contributions, ecosystem-governance policies, orders, payment groups, subscriptions, entitlements, refunds, fulfillment, scoped services, capacity listings/inquiries, marketplace aggregation, seller monitoring, webhooks, and commercial-license entitlements under `/v1/market/**`. - `@treeseed/api` owns hosted or sovereign Admin control-plane state only. Its complete versioned route descriptor is pinned by exact API ref and passed through the singleton gateway without transferring implementation ownership. The gateway admits only descriptor-declared method/path pairs; an arbitrary non-Market `/v1/**` prefix is not a pass-through contract. -- Singleton reconciliation owns only the declared gateway, descriptor, verification, and manifest overlay inside `treeseed-ai/market-api`. Private Market application files are repository-owned: the reconciler bootstraps the extension entrypoint once, preserves all paths outside its manifest, and blocks managed-file drift instead of replacing the private application tree. +- Singleton reconciliation owns only the declared gateway, descriptor, verification, and manifest overlay inside `treeseed-ai/market-api`. Market application files are repository-owned: the reconciler bootstraps the extension entrypoint once, preserves all paths outside its manifest, and blocks managed-file drift instead of replacing the application tree. - `@treeseed/admin` retains identity, teams, projects, project governance, knowledge, capacity/workday operations, services, secrets, audit, and control-plane administration. It contains no Market implementation after extraction. - `@treeseed/ui` owns reusable, Stripe-free, theme-native commerce and governance components. diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index 603d7d54..a7db79a4 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 9 +version: 10 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:2fde78efade16fb7ad2385a9a764549988a603f1647619c2d2faf1a76446c19e +digest: sha256:e105e21f1f433f6fad9f60ff12098d2d16cb189ec24aaf3d812139e28257d342 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -30,7 +30,7 @@ resources: - { key: 'project:treeseed/market-api', team: 'team:treeseed', slug: market-api, name: TreeSeed Market API, description: First-party Market service with independent hosted-deployment authority., kind: service, primaryRepository: 'repository:treeseed/market-api', libraryRepository: 'repository:treeseed/market-api-library' } - { key: 'project:treeseed/skill', team: 'team:treeseed', slug: skill, name: TreeSeed Skill, description: Versioned agent skill for operating the TreeSeed ecosystem., kind: skill, primaryRepository: 'repository:treeseed/skill', libraryRepository: 'repository:treeseed/skill-library' } repositories: - - { key: 'repository:treeseed/team-library', project: 'project:treeseed/team', role: library, provider: github, owner: treeseed-ai, name: team-library, gitUrl: 'https://github.com/treeseed-ai/team-library.git', defaultBranch: main, repositoryPolicy: { visibility: private, lifecycle: adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [] }, metadata: { libraryRoot: '.', synchronizedRefs: [main, staging] } } + - { key: 'repository:treeseed/team-library', project: 'project:treeseed/team', role: library, provider: github, owner: treeseed-ai, name: team-library, gitUrl: 'https://github.com/treeseed-ai/team-library.git', defaultBranch: main, repositoryPolicy: { visibility: public, lifecycle: adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [] }, metadata: { libraryRoot: '.', synchronizedRefs: [main, staging] } } - { key: 'repository:treeseed/platform', project: 'project:treeseed/platform', role: primary, provider: github, owner: treeseed-ai, name: platform, gitUrl: 'https://github.com/treeseed-ai/platform.git', defaultBranch: main, checkoutPath: '.', repositoryPolicy: &public_repo { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] } } - { key: 'repository:treeseed/deployment', project: 'project:treeseed/deployment', role: primary, provider: github, owner: treeseed-ai, name: deployment, gitUrl: 'https://github.com/treeseed-ai/deployment.git', defaultBranch: main, checkoutPath: packages/deployment, repositoryPolicy: *public_repo, metadata: { deploymentAuthority: host-manager } } - { key: 'repository:treeseed/api', project: 'project:treeseed/api', role: primary, provider: github, owner: treeseed-ai, name: api, gitUrl: 'https://github.com/treeseed-ai/api.git', defaultBranch: main, checkoutPath: packages/api, repositoryPolicy: *public_repo } @@ -46,7 +46,7 @@ resources: - { key: 'repository:treeseed/template-engineering', project: 'project:treeseed/template-engineering', role: primary, provider: github, owner: treeseed-ai, name: template-engineering, gitUrl: 'https://github.com/treeseed-ai/template-engineering.git', defaultBranch: main, checkoutPath: packages/template-engineering, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/template-research', project: 'project:treeseed/template-research', role: primary, provider: github, owner: treeseed-ai, name: template-research, gitUrl: 'https://github.com/treeseed-ai/template-research.git', defaultBranch: main, checkoutPath: packages/template-research, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/market', project: 'project:treeseed/market', role: primary, provider: github, owner: treeseed-ai, name: market, gitUrl: 'https://github.com/treeseed-ai/market.git', defaultBranch: main, checkoutPath: packages/market, repositoryPolicy: *public_repo, metadata: { hostedDeploymentAuthority: external } } - - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: packages/market-api, repositoryPolicy: &private_repo { visibility: private, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: true, workflows: [verify.yml] }, metadata: { hostedDeploymentAuthority: external } } + - { key: 'repository:treeseed/market-api', project: 'project:treeseed/market-api', role: primary, provider: github, owner: treeseed-ai, name: market-api, gitUrl: 'https://github.com/treeseed-ai/market-api.git', defaultBranch: main, checkoutPath: packages/market-api, repositoryPolicy: *public_repo, metadata: { hostedDeploymentAuthority: external } } - { key: 'repository:treeseed/skill', project: 'project:treeseed/skill', role: primary, provider: github, owner: treeseed-ai, name: skill, gitUrl: 'https://github.com/treeseed-ai/skill.git', defaultBranch: main, checkoutPath: packages/skill, repositoryPolicy: *public_repo } - { key: 'repository:treeseed/platform-library', project: 'project:treeseed/platform', role: library, provider: github, owner: treeseed-ai, name: platform-library, gitUrl: 'https://github.com/treeseed-ai/platform-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: &library_metadata { libraryRoot: '.', synchronizedRefs: [main, staging] } } - { key: 'repository:treeseed/deployment-library', project: 'project:treeseed/deployment', role: library, provider: github, owner: treeseed-ai, name: deployment-library, gitUrl: 'https://github.com/treeseed-ai/deployment-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } @@ -63,7 +63,7 @@ resources: - { key: 'repository:treeseed/template-engineering-library', project: 'project:treeseed/template-engineering', role: library, provider: github, owner: treeseed-ai, name: template-engineering-library, gitUrl: 'https://github.com/treeseed-ai/template-engineering-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/template-research-library', project: 'project:treeseed/template-research', role: library, provider: github, owner: treeseed-ai, name: template-research-library, gitUrl: 'https://github.com/treeseed-ai/template-research-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/market-library', project: 'project:treeseed/market', role: library, provider: github, owner: treeseed-ai, name: market-library, gitUrl: 'https://github.com/treeseed-ai/market-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *private_repo, metadata: *library_metadata } + - { key: 'repository:treeseed/market-api-library', project: 'project:treeseed/market-api', role: library, provider: github, owner: treeseed-ai, name: market-api-library, gitUrl: 'https://github.com/treeseed-ai/market-api-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/skill-library', project: 'project:treeseed/skill', role: library, provider: github, owner: treeseed-ai, name: skill-library, gitUrl: 'https://github.com/treeseed-ai/skill-library.git', defaultBranch: main, repositoryPolicy: *public_repo, metadata: *library_metadata } - { key: 'repository:treeseed/fixtures', project: 'project:treeseed/platform', role: fixture, provider: github, owner: treeseed-ai, name: fixtures, gitUrl: 'https://github.com/treeseed-ai/fixtures.git', defaultBranch: main, checkoutPath: .fixtures, repositoryPolicy: { visibility: public, lifecycle: create-or-adopt, deletionPolicy: retain, defaultBranch: main, stagingBranch: staging, issues: true, actions: false, workflows: [] } } runtime: From d855788b4f76c6f4404f17cf84d99d3d6efc3b13 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 00:39:45 -0400 Subject: [PATCH 309/501] release(platform): select source isolation API rc101 Agent rc49 and Deployment rc300 --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index beee9f19..1e6cae5a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc298", - "generation": 248, + "release": "0.1.0~rc300", + "generation": 249, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"685e4cbb6c712b6d3dabf03746d681eab5984864"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"e56f85affd5684638175ecccdb615d0c70099f94","tag":"0.1.0-rc.298"}, + "platform": {"repository":"treeseed-ai/platform","commit":"883ae3431a842467f34ab12d27d2a19aad176cd3"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"09e395a596f659b47e4e39a9b3afcb2afd8f1484","tag":"0.1.0-rc.300"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.110","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.110.tgz","sha256":"991802c1c61e92077c48acaf47c167bdd2e86f61a93b6d42ba84e161a49de359"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.100","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/treeseed-api-0.8.0-rc.100.tgz","sha256":"2dc1b6c60065b6414d5eb56236593759bb19d252289ef19f0659c52685a52d33"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.101","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/treeseed-api-0.8.0-rc.101.tgz","sha256":"719d7d50d810c08d6e60adffed1d3f55d39b8e56e558a40230dd7287c41907c6"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc100-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/component-release.json","sha256":"ab1a263ecb1c62dddbf6acd8ff2eb40517c3976a5139161d7f88ea1d85cf72d6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/compose.yml","sha256":"6e6a54e5a00567c42898ad50496eab5547961f418d4d0cdbc143571c616c51be"}}]}, + {"componentId":"api","release":"0.8.0~rc101-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/component-release.json","sha256":"708211ff6ebb0a5a76595475fab8ebc69a28c258d0075b351a130f14d63853e0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/compose.yml","sha256":"16cea27ef006034e426bad3dc4fa19f2e0a84d622763d1322809d331f0072b85"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, + {"componentId":"agent","release":"0.13.0~rc49-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/component-release.json","sha256":"5743f9eb6ac346903a980b3a6637f4586c9022ef51418398700b6b4e88a7c7c5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/compose.yml","sha256":"496d48797898105c673427dcfac152c9d74c0fae864bdc97a1fd5646e12157a6"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T16:30:00Z" + "createdAt": "2026-09-11T04:30:00Z" } From 7c1f70093c28c6c64583b43ee1f62638de37b1eb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 00:46:35 -0400 Subject: [PATCH 310/501] release(platform): select source isolation API rc101 Agent rc49 and Deployment rc300 (#502) --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index beee9f19..1e6cae5a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc298", - "generation": 248, + "release": "0.1.0~rc300", + "generation": 249, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"685e4cbb6c712b6d3dabf03746d681eab5984864"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"e56f85affd5684638175ecccdb615d0c70099f94","tag":"0.1.0-rc.298"}, + "platform": {"repository":"treeseed-ai/platform","commit":"883ae3431a842467f34ab12d27d2a19aad176cd3"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"09e395a596f659b47e4e39a9b3afcb2afd8f1484","tag":"0.1.0-rc.300"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.110","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.110.tgz","sha256":"991802c1c61e92077c48acaf47c167bdd2e86f61a93b6d42ba84e161a49de359"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.100","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/treeseed-api-0.8.0-rc.100.tgz","sha256":"2dc1b6c60065b6414d5eb56236593759bb19d252289ef19f0659c52685a52d33"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.101","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/treeseed-api-0.8.0-rc.101.tgz","sha256":"719d7d50d810c08d6e60adffed1d3f55d39b8e56e558a40230dd7287c41907c6"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc100-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/component-release.json","sha256":"ab1a263ecb1c62dddbf6acd8ff2eb40517c3976a5139161d7f88ea1d85cf72d6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.100/compose.yml","sha256":"6e6a54e5a00567c42898ad50496eab5547961f418d4d0cdbc143571c616c51be"}}]}, + {"componentId":"api","release":"0.8.0~rc101-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/component-release.json","sha256":"708211ff6ebb0a5a76595475fab8ebc69a28c258d0075b351a130f14d63853e0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/compose.yml","sha256":"16cea27ef006034e426bad3dc4fa19f2e0a84d622763d1322809d331f0072b85"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc48-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/component-release.json","sha256":"33a82b9e91f0ca79858be8fd054e9859877dd4a00038446fe4f5745e89f9fbad"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.48/compose.yml","sha256":"e51228ef0b6c9a82d8b8954fbf6502ae4eb5ef1b80a70a07ef9e1531bd95798a"}}]}, + {"componentId":"agent","release":"0.13.0~rc49-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/component-release.json","sha256":"5743f9eb6ac346903a980b3a6637f4586c9022ef51418398700b6b4e88a7c7c5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/compose.yml","sha256":"496d48797898105c673427dcfac152c9d74c0fae864bdc97a1fd5646e12157a6"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-10T16:30:00Z" + "createdAt": "2026-09-11T04:30:00Z" } From ffc3cc37ea66a9600c45ee19dfe5726a1539526d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 01:48:44 -0400 Subject: [PATCH 311/501] Select generation250 source-isolation recovery chain --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1e6cae5a..37170fec 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc300", - "generation": 249, + "release": "0.1.0~rc301", + "generation": 250, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"883ae3431a842467f34ab12d27d2a19aad176cd3"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"09e395a596f659b47e4e39a9b3afcb2afd8f1484","tag":"0.1.0-rc.300"}, + "platform": {"repository":"treeseed-ai/platform","commit":"7c1f70093c28c6c64583b43ee1f62638de37b1eb"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"b3292978cee26fb38f9383f618910f39fdd7aeef","tag":"0.1.0-rc.301"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.101","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/treeseed-api-0.8.0-rc.101.tgz","sha256":"719d7d50d810c08d6e60adffed1d3f55d39b8e56e558a40230dd7287c41907c6"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.102","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/treeseed-api-0.8.0-rc.102.tgz","sha256":"cb9ac68eaaa389addb459a12e3002c57c29318db2fde459f48481cb86ba0f499"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.79","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.79.tgz","sha256":"da6e892c93a633a6d8d7adf55b971dbf68e238cd943dc498443f7fc77ac0afcc"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.81","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.81.tgz","sha256":"5323d09d4dc19970caeade85c2412043905657f04f2315572580a5774f7c2c02"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc101-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/component-release.json","sha256":"708211ff6ebb0a5a76595475fab8ebc69a28c258d0075b351a130f14d63853e0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/compose.yml","sha256":"16cea27ef006034e426bad3dc4fa19f2e0a84d622763d1322809d331f0072b85"}}]}, + {"componentId":"api","release":"0.8.0~rc102-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/component-release.json","sha256":"36993c51312995a1e3a46333b4334874f33cdbd213379db6baa5be0b1b74e5f2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/compose.yml","sha256":"30695ac791f377539ee7f2be84f1652e2ba96ea20b3bff8a7c353df03eee3f32"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc49-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/component-release.json","sha256":"5743f9eb6ac346903a980b3a6637f4586c9022ef51418398700b6b4e88a7c7c5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/compose.yml","sha256":"496d48797898105c673427dcfac152c9d74c0fae864bdc97a1fd5646e12157a6"}}]}, + {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T04:30:00Z" + "createdAt": "2026-09-11T05:50:00Z" } From b3dc9dc0c863b096e8108601f96e29d3e8f23d5c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 01:52:16 -0400 Subject: [PATCH 312/501] Select generation250 source-isolation recovery chain (#503) --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1e6cae5a..37170fec 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc300", - "generation": 249, + "release": "0.1.0~rc301", + "generation": 250, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"883ae3431a842467f34ab12d27d2a19aad176cd3"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"09e395a596f659b47e4e39a9b3afcb2afd8f1484","tag":"0.1.0-rc.300"}, + "platform": {"repository":"treeseed-ai/platform","commit":"7c1f70093c28c6c64583b43ee1f62638de37b1eb"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"b3292978cee26fb38f9383f618910f39fdd7aeef","tag":"0.1.0-rc.301"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.101","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/treeseed-api-0.8.0-rc.101.tgz","sha256":"719d7d50d810c08d6e60adffed1d3f55d39b8e56e558a40230dd7287c41907c6"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.102","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/treeseed-api-0.8.0-rc.102.tgz","sha256":"cb9ac68eaaa389addb459a12e3002c57c29318db2fde459f48481cb86ba0f499"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.79","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.79.tgz","sha256":"da6e892c93a633a6d8d7adf55b971dbf68e238cd943dc498443f7fc77ac0afcc"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.81","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.81.tgz","sha256":"5323d09d4dc19970caeade85c2412043905657f04f2315572580a5774f7c2c02"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc101-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/component-release.json","sha256":"708211ff6ebb0a5a76595475fab8ebc69a28c258d0075b351a130f14d63853e0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.101/compose.yml","sha256":"16cea27ef006034e426bad3dc4fa19f2e0a84d622763d1322809d331f0072b85"}}]}, + {"componentId":"api","release":"0.8.0~rc102-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/component-release.json","sha256":"36993c51312995a1e3a46333b4334874f33cdbd213379db6baa5be0b1b74e5f2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/compose.yml","sha256":"30695ac791f377539ee7f2be84f1652e2ba96ea20b3bff8a7c353df03eee3f32"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc49-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/component-release.json","sha256":"5743f9eb6ac346903a980b3a6637f4586c9022ef51418398700b6b4e88a7c7c5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.49/compose.yml","sha256":"496d48797898105c673427dcfac152c9d74c0fae864bdc97a1fd5646e12157a6"}}]}, + {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T04:30:00Z" + "createdAt": "2026-09-11T05:50:00Z" } From a85e090608439f79b8eb690a7e9a1dcf8a53d208 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 03:12:20 -0400 Subject: [PATCH 313/501] Select generation251 verified source-profile and conversation fixes --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 37170fec..1c28da6a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc301", - "generation": 250, + "release": "0.1.0~rc302", + "generation": 251, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"7c1f70093c28c6c64583b43ee1f62638de37b1eb"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"b3292978cee26fb38f9383f618910f39fdd7aeef","tag":"0.1.0-rc.301"}, + "platform": {"repository":"treeseed-ai/platform","commit":"b3dc9dc0c863b096e8108601f96e29d3e8f23d5c"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"57668e2bee8fba62c73f3e3e5792d9e4b8d95bea","tag":"0.1.0-rc.302"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.102","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/treeseed-api-0.8.0-rc.102.tgz","sha256":"cb9ac68eaaa389addb459a12e3002c57c29318db2fde459f48481cb86ba0f499"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.105","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/treeseed-api-0.8.0-rc.105.tgz","sha256":"e30f47322df3a81e1db4b0adfba7085b9416adc41ca580cb44113dcc60eb6116"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.81","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.81.tgz","sha256":"5323d09d4dc19970caeade85c2412043905657f04f2315572580a5774f7c2c02"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.82","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.82.tgz","sha256":"d529016d274329799705b06dd8bc4b8e0c0b988d1a2041d7624f243e1adbedcc"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -31,7 +31,7 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc102-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/component-release.json","sha256":"36993c51312995a1e3a46333b4334874f33cdbd213379db6baa5be0b1b74e5f2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/compose.yml","sha256":"30695ac791f377539ee7f2be84f1652e2ba96ea20b3bff8a7c353df03eee3f32"}}]}, + {"componentId":"api","release":"0.8.0~rc105-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/component-release.json","sha256":"4e4cf590fda025008750ecd8fd3df529e2e67b8493786f2065228cacd9a96af6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/compose.yml","sha256":"440f109741d2631701c1e7ef8233af9926af944209574aaf3d8081460b7f82c5"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T05:50:00Z" + "createdAt": "2026-09-11T07:10:00Z" } From 20fce27d509effa24dfa4205a5d90f674e17d3d5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 03:14:04 -0400 Subject: [PATCH 314/501] Select generation251 verified source-profile and conversation fixes (#504) --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 37170fec..1c28da6a 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc301", - "generation": 250, + "release": "0.1.0~rc302", + "generation": 251, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"7c1f70093c28c6c64583b43ee1f62638de37b1eb"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"b3292978cee26fb38f9383f618910f39fdd7aeef","tag":"0.1.0-rc.301"}, + "platform": {"repository":"treeseed-ai/platform","commit":"b3dc9dc0c863b096e8108601f96e29d3e8f23d5c"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"57668e2bee8fba62c73f3e3e5792d9e4b8d95bea","tag":"0.1.0-rc.302"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.115","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.115.tgz","sha256":"6f5fc35fdcfff4dd89fc45ac31e76ed532c2e7e60e146ed4a1b9b288f95906cf"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.102","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/treeseed-api-0.8.0-rc.102.tgz","sha256":"cb9ac68eaaa389addb459a12e3002c57c29318db2fde459f48481cb86ba0f499"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.105","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/treeseed-api-0.8.0-rc.105.tgz","sha256":"e30f47322df3a81e1db4b0adfba7085b9416adc41ca580cb44113dcc60eb6116"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.81","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.81.tgz","sha256":"5323d09d4dc19970caeade85c2412043905657f04f2315572580a5774f7c2c02"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.82","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.82.tgz","sha256":"d529016d274329799705b06dd8bc4b8e0c0b988d1a2041d7624f243e1adbedcc"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -31,7 +31,7 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc102-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/component-release.json","sha256":"36993c51312995a1e3a46333b4334874f33cdbd213379db6baa5be0b1b74e5f2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.102/compose.yml","sha256":"30695ac791f377539ee7f2be84f1652e2ba96ea20b3bff8a7c353df03eee3f32"}}]}, + {"componentId":"api","release":"0.8.0~rc105-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/component-release.json","sha256":"4e4cf590fda025008750ecd8fd3df529e2e67b8493786f2065228cacd9a96af6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/compose.yml","sha256":"440f109741d2631701c1e7ef8233af9926af944209574aaf3d8081460b7f82c5"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T05:50:00Z" + "createdAt": "2026-09-11T07:10:00Z" } From efc024c73c3d17be3419021f25f66a4faf05b27b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 03:22:38 -0400 Subject: [PATCH 315/501] Select generation252 synchronous source-builder verification --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1c28da6a..689985e6 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc302", - "generation": 251, + "release": "0.1.0~rc303", + "generation": 252, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b3dc9dc0c863b096e8108601f96e29d3e8f23d5c"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"57668e2bee8fba62c73f3e3e5792d9e4b8d95bea","tag":"0.1.0-rc.302"}, + "platform": {"repository":"treeseed-ai/platform","commit":"20fce27d509effa24dfa4205a5d90f674e17d3d5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"f5cede95bd0576273005867b880646c878bc22b5","tag":"0.1.0-rc.303"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T07:10:00Z" + "createdAt": "2026-09-11T07:22:00Z" } From 44f8ef9023824e9652ad724c7323d5d524a9214a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 03:25:37 -0400 Subject: [PATCH 316/501] Select generation252 synchronous source-builder verification (#505) --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1c28da6a..689985e6 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc302", - "generation": 251, + "release": "0.1.0~rc303", + "generation": 252, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b3dc9dc0c863b096e8108601f96e29d3e8f23d5c"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"57668e2bee8fba62c73f3e3e5792d9e4b8d95bea","tag":"0.1.0-rc.302"}, + "platform": {"repository":"treeseed-ai/platform","commit":"20fce27d509effa24dfa4205a5d90f674e17d3d5"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"f5cede95bd0576273005867b880646c878bc22b5","tag":"0.1.0-rc.303"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T07:10:00Z" + "createdAt": "2026-09-11T07:22:00Z" } From 00db913b208bd781228fe0f247c920c87f38241c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 04:45:17 -0400 Subject: [PATCH 317/501] chore(release): select bounded planning and 24-hour CLI sessions --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 689985e6..a004b425 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc303", - "generation": 252, + "release": "0.1.0~rc304", + "generation": 253, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"20fce27d509effa24dfa4205a5d90f674e17d3d5"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"f5cede95bd0576273005867b880646c878bc22b5","tag":"0.1.0-rc.303"}, + "platform": {"repository":"treeseed-ai/platform","commit":"44f8ef9023824e9652ad724c7323d5d524a9214a"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"a200f494cc3b4a747600f5f46eed62cf5bf3234c","tag":"0.1.0-rc.304"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.105","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/treeseed-api-0.8.0-rc.105.tgz","sha256":"e30f47322df3a81e1db4b0adfba7085b9416adc41ca580cb44113dcc60eb6116"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.106","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/treeseed-api-0.8.0-rc.106.tgz","sha256":"885e47f58b35dd4b01ebf5437e1d5a16ac0ae9694fa044c779f708a6060c3816"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,7 +31,7 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc105-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/component-release.json","sha256":"4e4cf590fda025008750ecd8fd3df529e2e67b8493786f2065228cacd9a96af6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.105/compose.yml","sha256":"440f109741d2631701c1e7ef8233af9926af944209574aaf3d8081460b7f82c5"}}]}, + {"componentId":"api","release":"0.8.0~rc106-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/component-release.json","sha256":"d7c01e62bea3cea8afc304d48b87b2604fb6d6545666ff8df8fb47dab24f10ba"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/compose.yml","sha256":"7905357e719b3ec6a6b57bf7e44f2332fa50a3cff6acc3122893ed1b52443703"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T07:22:00Z" + "createdAt": "2026-09-11T08:44:00Z" } From 8155724a0972c751ef36ebd96fa5f86681059bd8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 07:13:30 -0400 Subject: [PATCH 318/501] Select byte-safe proposal and source maintenance generation 254 (refs #501) --- config/integrations/development.release.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index a004b425..78041724 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,24 +1,24 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc304", - "generation": 253, + "release": "0.1.0~rc305", + "generation": 254, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"44f8ef9023824e9652ad724c7323d5d524a9214a"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"a200f494cc3b4a747600f5f46eed62cf5bf3234c","tag":"0.1.0-rc.304"}, + "platform": {"repository":"treeseed-ai/platform","commit":"03427d6da83bcd3bd9369204cb2569e890cfce34"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d78c189dfb5195acad530cffca2e9a436409cf68","tag":"0.1.0-rc.305"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.106","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/treeseed-api-0.8.0-rc.106.tgz","sha256":"885e47f58b35dd4b01ebf5437e1d5a16ac0ae9694fa044c779f708a6060c3816"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.107","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/treeseed-api-0.8.0-rc.107.tgz","sha256":"8aeca3c9de581766d70c3f552dd8b21e2bd7401f88043e505d36c38d9d24a349"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.82","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.82.tgz","sha256":"d529016d274329799705b06dd8bc4b8e0c0b988d1a2041d7624f243e1adbedcc"}}, - {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.17","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/treeseed-treedx-0.3.0-rc.17.tgz","sha256":"7bbee8d24700b2066f0df5f4906e0a5d809466c827e6136b4ad23a7e3c97e8a3"}}, + {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.18","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/treeseed-treedx-0.3.0-rc.18.tgz","sha256":"8940c30f39d80cbdd99c71dc085eca09103846ac1377ff3d6d87158d77dd69f0"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } ], @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc106-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/component-release.json","sha256":"d7c01e62bea3cea8afc304d48b87b2604fb6d6545666ff8df8fb47dab24f10ba"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.106/compose.yml","sha256":"7905357e719b3ec6a6b57bf7e44f2332fa50a3cff6acc3122893ed1b52443703"}}]}, + {"componentId":"api","release":"0.8.0~rc107-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/component-release.json","sha256":"f93cf1658ffce1c15f672dd0fa6d748b640d68836ac8adce52aac20e8f1ceac5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/compose.yml","sha256":"6c20793911e0840ada611fb0d305901e1272cb125744de932eb1f5bffa195dbd"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, - {"componentId":"treedx","release":"0.3.0~rc17-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/component-release.json","sha256":"53f5c0645d99c14fd4360c3a62f7a03c6637ce1505f24650c9b01baa268ec169"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.17/compose.yml","sha256":"76267eaf5691ddaaee164ee43b3b8121755aa345ae037c4647337fd06d3e0b87"}}]}, + {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T08:44:00Z" + "createdAt": "2026-09-11T11:14:00Z" } From 4d3ec66b7ba84e7cb7430899722db0bb99bae5c5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 10:08:42 -0400 Subject: [PATCH 319/501] Select generation255 targeted review release chain (refs #501) --- config/integrations/development.release.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 78041724..6d0c83f1 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,23 +1,23 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc305", - "generation": 254, + "release": "0.1.0~rc306", + "generation": 255, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"03427d6da83bcd3bd9369204cb2569e890cfce34"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d78c189dfb5195acad530cffca2e9a436409cf68","tag":"0.1.0-rc.305"}, + "platform": {"repository":"treeseed-ai/platform","commit":"1378497cafc3dec6bea6257b52b2d838fbe86af8"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"16ec18339aede7b7587904b671a032bc10816e13","tag":"0.1.0-rc.306"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.116","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.116.tgz","sha256":"95f5a77ede9d390adba1096f83ea57059516e7447ac424bccd8d74ada50bfe3c"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.107","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/treeseed-api-0.8.0-rc.107.tgz","sha256":"8aeca3c9de581766d70c3f552dd8b21e2bd7401f88043e505d36c38d9d24a349"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.108","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/treeseed-api-0.8.0-rc.108.tgz","sha256":"753f2464c4bcc398839324490628ecf554e2514b6891311f1c34cec8d2794dfb"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.82","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.82.tgz","sha256":"d529016d274329799705b06dd8bc4b8e0c0b988d1a2041d7624f243e1adbedcc"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.83","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.83.tgz","sha256":"5220dfc73ae290b5f7a63fc4f93d03726bfaf66a0c80108e7b676fe452f3a953"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.18","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/treeseed-treedx-0.3.0-rc.18.tgz","sha256":"8940c30f39d80cbdd99c71dc085eca09103846ac1377ff3d6d87158d77dd69f0"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc107-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/component-release.json","sha256":"f93cf1658ffce1c15f672dd0fa6d748b640d68836ac8adce52aac20e8f1ceac5"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.107/compose.yml","sha256":"6c20793911e0840ada611fb0d305901e1272cb125744de932eb1f5bffa195dbd"}}]}, + {"componentId":"api","release":"0.8.0~rc108-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/component-release.json","sha256":"0ad7bba96a4d093e0beea5c6d14886051b72a045b83540b86873e473db2b5ac6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/compose.yml","sha256":"218cf12bcfdce4c8db4e403ccd1df5c5c46c833f1e85ebc44cbdbbdf44ce8255"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc50-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/component-release.json","sha256":"1680023e2e5eb1ff40c2bc57310165ab189d0a8945f68f71dd8b633f1f4c2ba0"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.50/compose.yml","sha256":"a6d296bce266c82d4a88b383991a9305e52a176ac0cb95623e874fd36efc3092"}}]}, + {"componentId":"agent","release":"0.13.0~rc51-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.51/component-release.json","sha256":"8c993724fc3415bb14ba29d1d7a9e9536848d374f3da20305cf349e18978015b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.51/compose.yml","sha256":"8e4bc5c84539b61713d6c6b7f85a11d7a78bb1c8291c56b4199bf28f22d5a397"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T11:14:00Z" + "createdAt": "2026-09-11T13:44:00Z" } From 56a37ffc943db014b0b18c135b0fd6ec5818ab56 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 11:19:21 -0400 Subject: [PATCH 320/501] Select generation256 bounded reviewer runtime repair (refs #501) --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 6d0c83f1..7f504c4c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc306", - "generation": 255, + "release": "0.1.0~rc307", + "generation": 256, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"1378497cafc3dec6bea6257b52b2d838fbe86af8"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"16ec18339aede7b7587904b671a032bc10816e13","tag":"0.1.0-rc.306"}, + "platform": {"repository":"treeseed-ai/platform","commit":"b615e5367fc320698a8c9300f8bb190e2c3b0de2"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"3780301b5703ecdcdad2b744778783aacd406dfa","tag":"0.1.0-rc.307"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.108","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/treeseed-api-0.8.0-rc.108.tgz","sha256":"753f2464c4bcc398839324490628ecf554e2514b6891311f1c34cec8d2794dfb"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.109","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/treeseed-api-0.8.0-rc.109.tgz","sha256":"da963849ad10a5349e84cc07e6d1902d5b2ba82f50ff7b899eb77d554eaf0824"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc108-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/component-release.json","sha256":"0ad7bba96a4d093e0beea5c6d14886051b72a045b83540b86873e473db2b5ac6"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.108/compose.yml","sha256":"218cf12bcfdce4c8db4e403ccd1df5c5c46c833f1e85ebc44cbdbbdf44ce8255"}}]}, + {"componentId":"api","release":"0.8.0~rc109-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/component-release.json","sha256":"5596b53b7b99b2d9536b8696e42b04a515c74f31d2de1ac07343fddc1b11d64a"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/compose.yml","sha256":"f243c95966169b60682ef7e8c7a5b89b71efa7e16fec84359dda018660f8802d"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc51-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.51/component-release.json","sha256":"8c993724fc3415bb14ba29d1d7a9e9536848d374f3da20305cf349e18978015b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.51/compose.yml","sha256":"8e4bc5c84539b61713d6c6b7f85a11d7a78bb1c8291c56b4199bf28f22d5a397"}}]}, + {"componentId":"agent","release":"0.13.0~rc52-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.52/component-release.json","sha256":"095d7b11f6c38af934ab0aad422795390eeab96bd9f00dc6aa9a46ce3c3780ba"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.52/compose.yml","sha256":"6e716e681e50e0e610349d5b44fc35da186323984b2711505e5728ee192708d3"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T13:44:00Z" + "createdAt": "2026-09-11T15:20:00Z" } From 397c8c9df7d7d93b911a33a6f97a1ac69529a652 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 12:26:08 -0400 Subject: [PATCH 321/501] chore(platform): bind review acceptance repair generation 257 --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7f504c4c..2e178faf 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc307", - "generation": 256, + "release": "0.1.0~rc308", + "generation": 257, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"b615e5367fc320698a8c9300f8bb190e2c3b0de2"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"3780301b5703ecdcdad2b744778783aacd406dfa","tag":"0.1.0-rc.307"}, + "platform": {"repository":"treeseed-ai/platform","commit":"93d652cc97f6f2d5b15217ea2e85d6ef576185b1"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"93e0625b2c595fb98378a909b023c3f923d37db1","tag":"0.1.0-rc.308"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.109","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/treeseed-api-0.8.0-rc.109.tgz","sha256":"da963849ad10a5349e84cc07e6d1902d5b2ba82f50ff7b899eb77d554eaf0824"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.110","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/treeseed-api-0.8.0-rc.110.tgz","sha256":"2ff17a2d32645c9f563efe9035156b14396b446db6e2bfe3c3afa254e4a78512"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,9 +31,9 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc109-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/component-release.json","sha256":"5596b53b7b99b2d9536b8696e42b04a515c74f31d2de1ac07343fddc1b11d64a"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.109/compose.yml","sha256":"f243c95966169b60682ef7e8c7a5b89b71efa7e16fec84359dda018660f8802d"}}]}, + {"componentId":"api","release":"0.8.0~rc110-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/component-release.json","sha256":"95f002f06feaa20e4dc42e7c17bbe19c680027a1530de03982bea25549c4a8ff"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/compose.yml","sha256":"dc557443bf9eee4d70db2b1e563783a6c285846b386e5e635301685c3727b0a8"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc52-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.52/component-release.json","sha256":"095d7b11f6c38af934ab0aad422795390eeab96bd9f00dc6aa9a46ce3c3780ba"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.52/compose.yml","sha256":"6e716e681e50e0e610349d5b44fc35da186323984b2711505e5728ee192708d3"}}]}, + {"componentId":"agent","release":"0.13.0~rc53-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.53/component-release.json","sha256":"15b5b2d930d8960ece79f1fee1ab179b070001f186461cd8a0c9ade24350bcac"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.53/compose.yml","sha256":"68b49b82ade25847b888974b6c299dfe2eabc46cd16151c20e8e207e21d781b1"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, From ee17b28c0cba025638fec69aeffd401ca15aea2e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 13:13:24 -0400 Subject: [PATCH 322/501] chore: bind generation258 route-safe manager recovery --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 2e178faf..01ee8c6e 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc308", - "generation": 257, + "release": "0.1.0~rc309", + "generation": 258, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"93d652cc97f6f2d5b15217ea2e85d6ef576185b1"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"93e0625b2c595fb98378a909b023c3f923d37db1","tag":"0.1.0-rc.308"}, + "platform": {"repository":"treeseed-ai/platform","commit":"99db7f9bd8af2a7125ca83b38806551f39e632ee"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"29207a4475ed18208474409fa0fe40f6b86374e2","tag":"0.1.0-rc.309"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, From 2964443ada1dbd0880961b346645e1cea2294746 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 13:46:10 -0400 Subject: [PATCH 323/501] chore: bind generation259 review publication repair --- config/integrations/development.release.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 01ee8c6e..7fa38590 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc309", - "generation": 258, + "release": "0.1.0~rc310", + "generation": 259, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"99db7f9bd8af2a7125ca83b38806551f39e632ee"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"29207a4475ed18208474409fa0fe40f6b86374e2","tag":"0.1.0-rc.309"}, + "platform": {"repository":"treeseed-ai/platform","commit":"52caa01ea10fd29061cda76cbc70fc230bd27520"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"d8411ffbbeeed58fdd6964da2e69143a849f25a3","tag":"0.1.0-rc.310"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -33,7 +33,7 @@ {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, {"componentId":"api","release":"0.8.0~rc110-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/component-release.json","sha256":"95f002f06feaa20e4dc42e7c17bbe19c680027a1530de03982bea25549c4a8ff"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/compose.yml","sha256":"dc557443bf9eee4d70db2b1e563783a6c285846b386e5e635301685c3727b0a8"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc53-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.53/component-release.json","sha256":"15b5b2d930d8960ece79f1fee1ab179b070001f186461cd8a0c9ade24350bcac"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.53/compose.yml","sha256":"68b49b82ade25847b888974b6c299dfe2eabc46cd16151c20e8e207e21d781b1"}}]}, + {"componentId":"agent","release":"0.13.0~rc54-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.54/component-release.json","sha256":"32e0de22f2a08ea1122c3d86bf6a431957f17f9cbd7abab68b06e3d9bce64171"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.54/compose.yml","sha256":"5962b78b23efd03f761976d73acc91a905ca0ca4921179450ea8107e60e78b50"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, From 5dde9f5ee87cd4c14aa4fba14c05d2072196ab57 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 14:18:29 -0400 Subject: [PATCH 324/501] release: pin generation260 reviewer finalization acceptance --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7fa38590..8cd20211 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc310", - "generation": 259, + "release": "0.1.0~rc311", + "generation": 260, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"52caa01ea10fd29061cda76cbc70fc230bd27520"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"d8411ffbbeeed58fdd6964da2e69143a849f25a3","tag":"0.1.0-rc.310"}, + "platform": {"repository":"treeseed-ai/platform","commit":"780606ac9a8c7a3d13e18aed3b61873eccd0b6e0"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"1fac4365b9ae3ab6ba0ac4fdbce921548cc1a2a2","tag":"0.1.0-rc.311"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -33,12 +33,12 @@ {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, {"componentId":"api","release":"0.8.0~rc110-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/component-release.json","sha256":"95f002f06feaa20e4dc42e7c17bbe19c680027a1530de03982bea25549c4a8ff"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/compose.yml","sha256":"dc557443bf9eee4d70db2b1e563783a6c285846b386e5e635301685c3727b0a8"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc54-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.54/component-release.json","sha256":"32e0de22f2a08ea1122c3d86bf6a431957f17f9cbd7abab68b06e3d9bce64171"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.54/compose.yml","sha256":"5962b78b23efd03f761976d73acc91a905ca0ca4921179450ea8107e60e78b50"}}]}, + {"componentId":"agent","release":"0.13.0~rc55-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.55/component-release.json","sha256":"57f41d7ce3b3365db8ae11a509e00aa97099ac655daaa1dd756a29f51a3d1ff9"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.55/compose.yml","sha256":"a4cf42ecc9c6de5e75ad9576d742351314c9b491171e1bbcf0dc80ff3055b5bb"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T15:20:00Z" + "createdAt": "2026-09-11T18:20:00Z" } From 7bf2ed3440cba47d9fba8e1db37d6c7bd481d0cc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 20:39:29 -0400 Subject: [PATCH 325/501] Select generation261 activity profile closure (refs #501) --- config/integrations/development.release.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 8cd20211..ded51253 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc311", - "generation": 260, + "release": "0.1.0~rc312", + "generation": 261, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"780606ac9a8c7a3d13e18aed3b61873eccd0b6e0"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"1fac4365b9ae3ab6ba0ac4fdbce921548cc1a2a2","tag":"0.1.0-rc.311"}, + "platform": {"repository":"treeseed-ai/platform","commit":"dd9b8c406f085e6e64dfb2973cabcc3ec9ca6362"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"1fac4365b9ae3ab6ba0ac4fdbce921548cc1a2a2","tag":"0.1.0-rc.312"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.110","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/treeseed-api-0.8.0-rc.110.tgz","sha256":"2ff17a2d32645c9f563efe9035156b14396b446db6e2bfe3c3afa254e4a78512"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.111","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/treeseed-api-0.8.0-rc.111.tgz","sha256":"8e90df35cd6b2172a7ad639ba45d38f70f41f575af2ec3c1b5a028d3724a5198"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc110-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/component-release.json","sha256":"95f002f06feaa20e4dc42e7c17bbe19c680027a1530de03982bea25549c4a8ff"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.110/compose.yml","sha256":"dc557443bf9eee4d70db2b1e563783a6c285846b386e5e635301685c3727b0a8"}}]}, + {"componentId":"api","release":"0.8.0~rc111-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/component-release.json","sha256":"85ad938c38a1e04585e04732230409854590233b677bbc38641883d97f8a4c8d"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/compose.yml","sha256":"6a52d6ef7a5f4dbc1a99ea83f1d4d9f71f48f825669ae43df372fbf2b3550d8c"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc55-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.55/component-release.json","sha256":"57f41d7ce3b3365db8ae11a509e00aa97099ac655daaa1dd756a29f51a3d1ff9"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.55/compose.yml","sha256":"a4cf42ecc9c6de5e75ad9576d742351314c9b491171e1bbcf0dc80ff3055b5bb"}}]}, + {"componentId":"agent","release":"0.13.0~rc56-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.56/component-release.json","sha256":"06080cf40287e43527a03b31a535c3038de1686fb795eb5af02129aa90eb7492"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.56/compose.yml","sha256":"ba6306ee99a974c3e9b1c03c90d9d899b9f555c35345117deaeec8203fccab58"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-11T18:20:00Z" + "createdAt": "2026-09-12T00:38:47Z" } From 89cbfd28a7af783984a94f57802e1b11049d521a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 20:45:00 -0400 Subject: [PATCH 326/501] Bind generation261 to exact Deployment rc312 head (refs #501) --- config/integrations/development.release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index ded51253..c85fc3de 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -5,7 +5,7 @@ "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"dd9b8c406f085e6e64dfb2973cabcc3ec9ca6362"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"1fac4365b9ae3ab6ba0ac4fdbce921548cc1a2a2","tag":"0.1.0-rc.312"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"5e24aeedf77abf542a4986e5670406d9c602e500","tag":"0.1.0-rc.312"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, From 6348a71ac5a724fc912ae03431c68010739097d9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 21:44:55 -0400 Subject: [PATCH 327/501] Select generation262 activity profile acceptance --- config/integrations/development.release.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c85fc3de..c1ca5134 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,17 +1,17 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc312", - "generation": 261, + "release": "0.1.0~rc313", + "generation": 262, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", - "platform": {"repository":"treeseed-ai/platform","commit":"dd9b8c406f085e6e64dfb2973cabcc3ec9ca6362"}, + "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, "deployment": {"repository":"treeseed-ai/deployment","commit":"5e24aeedf77abf542a4986e5670406d9c602e500","tag":"0.1.0-rc.312"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, - {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.111","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/treeseed-api-0.8.0-rc.111.tgz","sha256":"8e90df35cd6b2172a7ad639ba45d38f70f41f575af2ec3c1b5a028d3724a5198"}}, + {"id":"api","packageName":"@treeseed/api","version":"0.8.0-rc.112","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.112/treeseed-api-0.8.0-rc.112.tgz","sha256":"bf0d1106624ba2adcdce1492e18339a34103a95127c0a24b1bcc308543a2fcdb"}}, {"id":"ui","packageName":"@treeseed/ui","version":"0.12.18-rc.19","artifact":{"url":"https://registry.npmjs.org/@treeseed/ui/-/ui-0.12.18-rc.19.tgz","sha256":"9f31d328fc4ee818049c45f6b870bd2b291b5fc7ad72c09a31268fe114f4c519"}}, { "id": "core", "packageName": "@treeseed/core", "version": "0.12.60-rc.8", "artifact": { "url": "https://registry.npmjs.org/@treeseed/core/-/core-0.12.60-rc.8.tgz", "sha256": "7a499718b285ec179a20fd85f85f5702d8c05ae00a9d4931f82d58e38cf888f2" } }, {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, @@ -31,14 +31,14 @@ "components": [ {"componentId":"identity","release":"0.1.0~rc298-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-component-release.json","sha256":"37a1b9a0a2f52323d07257ec2bb2ed417e8fac143ab926a9f7c90cac41342f25"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.298/identity-compose.yml","sha256":"226e851488bab8738e1fdbf98e259d8d9b04ac89d9adf3b0893d45fd3f886ab8"}}]}, {"componentId":"postgres","release":"0.1.0~rc288-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-component-release.json","sha256":"8b16128fd584af603e96ec8865c9b102319a587ca9600a09cfc6e5281fa3e0f4"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.288/postgres-compose.yml","sha256":"07620d83ca8fcae3791063cc34854ca98740cc167d65c57d9e0838c5bb9b4105"}}]}, - {"componentId":"api","release":"0.8.0~rc111-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/component-release.json","sha256":"85ad938c38a1e04585e04732230409854590233b677bbc38641883d97f8a4c8d"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.111/compose.yml","sha256":"6a52d6ef7a5f4dbc1a99ea83f1d4d9f71f48f825669ae43df372fbf2b3550d8c"}}]}, + {"componentId":"api","release":"0.8.0~rc112-1","manifest":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.112/component-release.json","sha256":"0c4000d3ef672b471b0ed5e4910e5e0769ad3c770a6c559e0dce0c29ee1432e2"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/api/releases/download/0.8.0-rc.112/compose.yml","sha256":"24e0de50ed70d8d6d27c0b901f866fe3f31a6c12ff68b9219d2b3c5a8b2d25c2"}}]}, {"componentId":"admin","release":"0.12.59~rc38-1","manifest":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/component-release.json","sha256":"f2858d3089fec5e4f9598acf72e15aae138c589a8df9fc3d7567fdd70b2dfb5c"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/compose.yml","sha256":"1182f6127d1d48edbc8280ca192b6b65008eaa9839cbc213dcdf8bc792e09f1e"}}]}, - {"componentId":"agent","release":"0.13.0~rc56-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.56/component-release.json","sha256":"06080cf40287e43527a03b31a535c3038de1686fb795eb5af02129aa90eb7492"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.56/compose.yml","sha256":"ba6306ee99a974c3e9b1c03c90d9d899b9f555c35345117deaeec8203fccab58"}}]}, + {"componentId":"agent","release":"0.13.0~rc57-1","manifest":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.57/component-release.json","sha256":"013c9d0c962a75d853adbcda32f1dadc5fc24b095dde2e49ee2f25f05f7cf238"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/agent/releases/download/0.13.0-rc.57/compose.yml","sha256":"90c1615a337bbfba8807b8a3a5aa0ab7eff804cb8b73babf6e7a129095d3024e"}}]}, {"componentId":"treedx","release":"0.3.0~rc18-1","manifest":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/component-release.json","sha256":"a754a933e0a20ce79e83021a01ec8dc0755583a265fab8cca5c61c5b6091ed66"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/compose.yml","sha256":"f6864cc88329585dd9b92ef02eefb12180bea68b36cc3074d5a8c6071e09679f"}}]}, {"componentId":"lab","release":"0.1.0~rc293-1","manifest":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/component-release.json","sha256":"c2f50382c3ceca7b46d438022a3d18ca1e15e9ad0e556594f0aac9eb5b7d0a6b"},"files":[{"path":"compose.yml","artifact":{"url":"https://github.com/treeseed-ai/deployment/releases/download/0.1.0-rc.293/compose.yml","sha256":"9fd0ffe67ee9ed9d3d1b740a8480f271aa004a311dc2a8dbe5bbcfc7ec4c6275"}}]}, {"componentId":"ai-inference","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-component-release.json","sha256":"6537a314a3d90147988d7393675bfc254bf5b5639f7e7ab57092ae88455da2e0"},"files":[{"path":"ai-inference-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-inference-compose.yml","sha256":"101257f93e89f8cc6a1d9c65e11269990a06adc4733f4515c90a2527f929756c"}}]}, {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-12T00:38:47Z" + "createdAt": "2026-09-12T01:40:00Z" } From d53c44990b1ab40dd830d691353b2dae7a76c520 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 11 Sep 2026 21:50:56 -0400 Subject: [PATCH 328/501] Bind generation262 to exact Deployment rc313 head --- config/integrations/development.release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index c1ca5134..6d292843 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -5,7 +5,7 @@ "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"5e24aeedf77abf542a4986e5670406d9c602e500","tag":"0.1.0-rc.312"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"18437f6f9f6084b950f99a89801e81cd1035d2fb","tag":"0.1.0-rc.313"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, From 59dfa5dc98333dd821813c408836e540a676d3d8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 14 Sep 2026 12:32:58 -0400 Subject: [PATCH 329/501] docs: establish agent architecture plans --- docs/agent-architecture.md | 539 +++++++++ docs/agent-assignments.md | 448 ++++++++ docs/agent.schema.yml | 2219 ++++++++++++++++++++++++++++++++++++ 3 files changed, 3206 insertions(+) create mode 100644 docs/agent-architecture.md create mode 100644 docs/agent-assignments.md create mode 100644 docs/agent.schema.yml diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md new file mode 100644 index 00000000..d271ded4 --- /dev/null +++ b/docs/agent-architecture.md @@ -0,0 +1,539 @@ +# Agent Architecture and Capacity Allocation Implementation Plan + +**Status:** in progress +**Plan created:** 2026-09-12 +**Last architecture review:** 2026-09-13 +**Scope:** agent profiles, handlers, AgentKernel, assignment workspaces, workday planning, capacity allocation, and provider selection +**Related plan:** [`docs/agent-assignments.md`](./agent-assignments.md) owns proposal planning, decisions, living-graph projection, assignments, results, review, and reconciliation +**Explicit non-goal:** UI implementation + +## Objective + +Restore the original configuration-plus-code agent model and replace the capacity hierarchy with one understandable workday allocator. + +```text +ready execution node + ↓ +workday admission and provider selection + ↓ +immutable assignment with effective activity profile + ↓ +provider isolation → AgentKernel → selected Handler + ↓ +general assignment result +``` + +Profiles explain who an agent is and how each activity behaves. Reusable handlers provide executable behavior. AgentKernel enforces every assignment through one path. The API owns scheduling and capacity. Providers supply execution environments but never define agent behavior. + +Reviewed acting work remains one objective while execution alternates between independently assigned profiles: + +```text +Actor acting assignment → immutable candidate → Reviewer reviewing assignment + ↑ │ + └──────── exact request-changes ───────┘ + approved → work item complete +``` + +## Progress Reporting + +Whoever implements this plan must update its checkboxes and the short **Observations and blockers** section in the same change. Mark an item complete only when its listed CLI, test, Actions, or exact-ref evidence exists. Keep detailed logs in Actions artifacts and the governing GitHub Issue; do not duplicate them here. + +Checkboxes report implementation status only: + +- `[ ]` not implemented or not verified +- `[x]` implemented and verified +- `BLOCKED:` requires an active entry under **Observations and blockers** + +## Decisions + +- The Agent package owns AgentKernel and the reusable default handlers. +- Every enabled activity profile selects one effective handler. +- First-party profiles select Agent-package defaults. A project may select a project-owned handler compiled into its runtime build. +- There are no separate default/override fields, handler versions, handler digests, downloads, marketplaces, or runtime source loading. +- Activity profiles may declare standing dependencies by agent class or lifecycle event. The API resolves them into the graph defined by `docs/agent-assignments.md`. +- An accepted acting work item deterministically expands into an Actor → Reviewer pair when review is required. Rejection repeats that pair against the same work-item objective through bounded node revisions. +- Only the Reviewer agent normally enables `reviewing`; the generated reviewing node selects that profile and receives the exact acting result. +- Every activity profile declares a simple deny-by-default content and tool permission ceiling. The profile is not a runtime grant. +- The API creates exact assignment grants within the profile ceiling and team/project policy. AgentKernel enforces that immutable grant at every runtime service. +- Handlers share one assignment context and one result contract. Do not create schemas for every handler or work product. +- AgentKernel has one public assignment entry point. Providers do not dispatch behavior by prompt or activity. +- Assignments, not profiles or agents, select and own their one mutable workspace and any Git branch. +- Workdays guarantee self-directed and collaborative planning before proposal-driven work can consume the remaining capacity. +- Ready graph nodes are the only assignment demand. +- No legacy implementation or backward compatibility remains after cutover. + +## Ownership + +| Component | Owns | Must not own | +|---|---|---| +| SDK | Portable profile, permission-ceiling, handler-selection, dependency-selector, workspace, assignment-context/result, capacity, and CLI contracts | Runtime handler code, scheduling, provider execution | +| API | Graph readiness, workday lifecycle, admission, grant compilation, workspace selection, fair selection, assignments, leases, accounting, and settlement | Prompts, handler implementation, provider-local execution | +| Agent package | AgentKernel, default handlers, build-time registry, assignment-scoped runtime services, result validation | Scheduling, graph mutation, capacity allocation, settlement | +| Project runtime | Project-owned handlers compiled into that project's runtime build | Remote handler loading, hidden scheduling policy, provider credentials | +| Capacity provider | Offers, availability, isolation, runtime/model/tool supply, credentials, native quotas, and execution transport | Agent semantics, graph topology, team priorities | +| TreeDX | Governed profiles, books, knowledge, notes, questions, proposals, decisions, and reports | Operational graph state, leases, reservations, provider availability | +| CLI | Generated operator and acceptance surface | Duplicate business logic or a second scheduler | + +## Agent Profile + +### Minimal complete shape + +```yaml +id: sdk/engineer +name: SDK Engineer +agentClass: engineer +purpose: Implement accepted SDK behavior through scoped TypeScript changes. +responsibilities: + - Participate in self-directed and collaborative planning. + - Estimate engineering work. + - Implement authorized source changes and return exact verification. +capabilities: + - code-change + - refactoring + - build-verification +context: + include: + - project-objectives + - accepted-decisions + - repository-structure + - assignment-subject + - predecessor-results + +activityProfiles: + planning: + handler: writer + dependsOn: + agents: [architect] + permissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question] + write: [proposal, question, knowledge] + tools: [discussion, source.read] + prompt: + system: Study the authorized SDK context and identify valuable work. + + estimating: + handler: estimate + dependsOn: + agents: [architect] + permissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question] + write: [proposal, question] + tools: [discussion, source.read] + prompt: + system: Estimate complete work items, dependencies, and acceptance criteria. + + acting: + handler: actor + dependsOn: + agents: [tester] + permissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question] + write: [] + tools: [source.read, source.write, verification] + additionalContext: + - assigned-source-scope + prompt: + system: Implement the accepted SDK work with the smallest strict TypeScript change. + + chat: + handler: writer + permissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question, discussion] + write: [discussion] + tools: [discussion] + prompt: + system: Answer within SDK engineering scope and preserve authority boundaries. +``` + +Required fields are identity, agent class, responsibilities, capabilities, common context, and enabled activity profiles. Each enabled activity requires a handler, meaningful prompt, and permissions. `dependsOn`, `additionalContext`, and handler parameters are optional and appear only when needed. + +Common context is declared once. Activities add context rather than restating the common list. Context byte, token, time, and item limits belong to the immutable assignment and provider capacity envelope, not every profile. + +Permissions are ceilings, not grants. Content permissions use model groups with `read` and `write`; write includes governed create, update, link, validate, and commit behavior. Tool permissions use stable human-readable groups such as `discussion`, `source.read`, `source.write`, `verification`, and `release`. The SDK expands those groups into concrete operations. There is no separate allow/deny pair, commit flag, authority preset, raw tool list, shell-command list, network-domain list, or branch policy in a profile. Anything not allowed is denied. + +Profiles do not contain provider selection, credentials, runtime images, generated graph IDs, estimates, concrete work items, exact paths, output taxonomies, reviewer mappings, or collaborator lists. + +### Core content usage + +Do not introduce `architecture` or `review` content models in the initial implementation. They are subjects and workflows, not yet distinct data contracts. + +- Each project has a conventional ` Architecture` `book`. +- The Architect extends that book with validated `knowledge` pages. +- Reviewer findings and concerns are `note` content. +- Unresolved review matters are `question` content. +- Workday reports are `note` content referencing the exact workday, assignments, results, usage, releases, and publications they summarize. +- `decision` content has an explicit class: `proposal`, `work-review`, or `publication`, plus an authority, approval, or vote method and its exact decision-maker evidence. Proposal acceptance and formal approved/request-changes review dispositions use that one model. +- Assignment results reference the exact TreeDX revisions and Git commits involved. + +Extend the generic content entity reference once and use it consistently on notes, questions, and decisions so each can identify an exact model, item, commit, path, optional heading anchor, and optional start/end line. Do not create architecture-note or review-note variants. Exact commit plus anchor/range keeps feedback and dispositions precise while allowing later pages to evolve. + +Add a new content model only when existing core models cannot express a required validated field structure, lifecycle, authorization rule, control-plane action, or query. A directory name or subject category alone is not sufficient. + +[`docs/agent.schema.yml`](./agent.schema.yml) is the machine-readable target object model. The SDK remains the runtime contract owner: implementation must generate SDK types and validators from the schema or prove exact structural equivalence in CI. API storage, Agent context/results, CLI schemas, and fixtures must use that same generated contract rather than restating it. + +The Reviewer is the only first-party agent that normally enables `reviewing`: + +```yaml +activityProfiles: + reviewing: + handler: writer + permissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question] + write: [note, question, decision] + tools: [source.read, verification] + prompt: + system: Review the assigned candidate against its objective, acceptance criteria, exact references, and verification. Record findings as notes or questions and finish with an exact approved or request-changes decision. Never modify the reviewed candidate. +``` + +### Standing dependency defaults + +Use readable selectors only: + +```yaml +dependsOn: + agents: [engineer, tester] + events: [] +``` + +`docs/agent-assignments.md` defines their fixed scope and graph semantics. Profiles never resolve or mutate the resulting edges. + +Initial first-party defaults: + +| Agent | Default handlers by activity | Standing dependency | +|---|---|---| +| Architect | planning/chat: `writer`; estimating: `estimate`; acting: `writer` | none | +| Engineer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Tester | +| Tester | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Architect | +| Releaser | planning/chat: `writer`; estimating: `estimate`; acting: `releaser` | planning and estimating require Architect; acting requires Engineer, Technical Writer, and approved required reviews | +| Reporter | planning/chat: `writer`; reporting: `reporter` | reporting requires `workday-closing` | +| Researcher | planning/chat/acting: `writer`; estimating: `estimate` | none | +| Reviewer | planning/reviewing/chat: `writer`; estimating: `estimate` | planning and estimating require Architect; reviewing depends on the exact work being reviewed | +| Technical Writer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Engineer and Tester | + +Standing dependencies apply to scheduled planning, estimating, and acting work. They do not apply automatically to chat, because an addressed message must not wait for an unrelated workflow node. Reviewing is subject-bound: reconciliation creates an edge from each exact reviewed node to its Reviewer node rather than placing every possible review target in the profile. + +The SDK default is test-first: Architect → Tester → Engineer. The Tester returns an exact test commit; the Engineer receives that commit as its base and normally receives no grant to modify test paths. Incorrect tests return to the Tester as revision work instead of being silently rewritten by the Engineer. + +Use one Reviewer class. A required acting work item automatically gets a paired reviewing node; no profile attaches itself to another agent and no user authors the generated node. The pair shares one work-item objective. The actor produces an immutable candidate, the Reviewer evaluates it, and rejection advances both stable nodes to another bounded revision with the exact findings. The work item becomes complete only after approval. + +Proposal review is also performed by the Reviewer `reviewing` profile, but it is generated from proposal governance rather than an acting work item. A different review subject does not require another Reviewer class. + +## Handlers + +### Shared interface + +```ts +interface Handler { + readonly id: string; + run(context: AssignmentContext, runtime: AgentRuntime): Promise; +} +``` + +The Agent package provides: + +- `WriterHandler` +- `ActorHandler` +- `EstimateHandler` +- `ReleaserHandler` +- `ReporterHandler` + +These handlers are reusable across agent classes. The activity profile supplies identity, prompt, context, and standing dependencies. The assignment supplies concrete work, authority, predecessor results, limits, and workspace. + +`EstimateHandler` uses the one proposal work-item estimate contract. This is a domain contract shared by all estimators, not a handler-specific artifact schema. + +### Project-owned handlers + +A project may change the activity profile's single `handler` value to a project-owned implementation. That class may call or compose a default handler, or implement `Handler` directly. It is registered when the project runtime is built and is available only when the assignment pins that exact build. + +Do not copy a default handler merely to change a prompt or context selector; those changes belong in the activity profile. Create project code only when executable behavior differs. + +One build-time registry contains Agent defaults plus handlers from the selected project runtime. Missing selections fail before execution. + +## AgentKernel + +```ts +interface AgentKernel { + runAssignment(request: KernelAssignmentRequest): Promise; +} +``` + +AgentKernel performs seven steps: + +1. Validate assignment identity, authority, deadline, profile, handler, runtime build, grants, and context limits. +2. Materialize context only from assignment-authorized references. +3. Resolve the selected handler from the build-time registry. +4. Create assignment-scoped runtime services and workspace. +5. Run the handler once under cancellation and hard limits. +6. Validate the shared result and exact references. +7. Return the canonical result or failure to the provider runner. + +AgentKernel does not schedule, evaluate graph readiness, allocate capacity, select providers, renew leases, approve decisions, or settle usage. + +### Runtime services + +```ts +interface AgentRuntime { + readContext(ref: AuthorizedContextRef): Promise; + invokeModel(request: ModelInvocationRequest): Promise; + runVerification(request: VerificationRequest): Promise; + commitTreeDx(request: TreeDxCommitRequest): Promise; + commitSource(request: SourceCommitRequest): Promise; +} +``` + +The activity profile defines the maximum content and tool authority appropriate for that activity. The API validates the assignment's requested authority against that ceiling and team/project policy, verifies that the provider supplies the required capabilities, and freezes the exact narrower grant on the assignment. Missing required authority blocks admission with an explanation; it is never silently removed. The runtime enforces the assignment grant whenever a handler calls a service. Do not duplicate required-service declarations in handler metadata. + +Deterministic handlers never invoke a model. Model-assisted handlers cannot bypass deterministic input, authority, reference, or result validation. + +## Assignment Workspaces and Git + +An assignment has at most one mutable workspace. Its mode identifies where mutable work may be staged; it does not restrict which exact Git or TreeDX references the assignment may read. + +| Mode | Mutable authority | Use | +|---|---|---| +| `read-only` | none | Analysis and deterministic inspection; exact Git and TreeDX context may be read | +| `treedx` | one governed TreeDX workspace | Books, knowledge, proposals, estimates, notes, questions, decisions, reports, and other governed content | +| `git` | one isolated Git worktree and branch | Tests, implementation, repository documentation, integration, and release | + +The accepted work item identifies its workspace mode. The profile permission ceiling must allow the requested mutation, and the assignment contains the exact paths, content scope, references, and grants. A `treedx` assignment may read exact Git refs; a `git` assignment may read exact TreeDX refs. `read-only` means no mutable workspace, not a third storage system. Merge and release permission comes from assignment grants, not another workspace mode. + +If one outcome requires commits to both Git and TreeDX, represent it as two dependent work items. Do not introduce a dual-write workspace or cross-system commit protocol. + +For Git work: + +- the API supplies an exact base commit; +- each source-changing attempt receives one isolated worktree and short-lived branch; +- handlers cannot share mutable worktrees or write directly to `staging` or `main`; +- completion returns repository, exact commit, and optional branch in the general result; +- retry or revision uses a new branch and never rewrites a reviewed commit; and +- branches may be removed after normal pull-request integration because Git history and assignment results retain custody. + +A single predecessor commit may be the next assignment's base. When several predecessor commits must be combined, create an explicit integration assignment. Do not hide automatic composite-base construction inside admission or context loading. + +`staging` remains the only development-integration branch and `main` remains production. Integration and release follow graph order and normal Actions verification. + +## Workday Capacity + +### Minimal policy + +```yaml +durationSeconds: 28800 +maximumConcurrency: 8 +planningSecondsPerAgent: 900 +communicationConcurrency: 1 +projectWeights: + sdk: 4 + api: 3 +agentClassWeights: + engineer: 4 + reviewer: 2 + reporter: 1 +``` + +Do not add allocation sets, minimum/target/maximum tiers, priority bands, borrow rules, a generic reserve, or separate capacity-plan and demand records. + +### Planning phase + +Every eligible participating agent receives `planningSecondsPerAgent` before proposal-driven work is admitted. The initial implementation has exactly two rounds: + +1. self-directed study, questions, proposals, and estimates; +2. collaboration using accepted first-round contributions. + +Round count is not configurable initially. Unused planning time joins the ordinary execution pool only after every selected agent completes, exhausts, or becomes explicitly ineligible. + +The read-only `workday plan` operation and mutating `workday start` use the same compiler. The workday stores the applied plan rather than creating another scheduling authority. + +### Lifecycle and Reporter + +Workday lifecycle is: + +```text +planned → active → closing → ended +``` + +- `active` admits planning, communication, and ordinary ready nodes. +- `closing` stops ordinary admissions and satisfies the `workday-closing` condition. +- Reporter and any required settlement/closeout nodes run during closing. +- `ended` is reached only after required closeout nodes finish and usage settles. + +Preflight reserves capacity from the estimated required closeout nodes. There is no separately configured generic reserve. + +### Admission and fairness + +Admission first applies hard gates: + +- current graph/node and decision authority; +- effective profile, handler, runtime build, and grants; +- node-required capabilities; +- eligible provider offer, availability, native limits, and concurrency; +- remaining workday time and assignment deadline. + +Among eligible nodes: + +1. select the project furthest below its weighted share of actual admitted seconds; +2. within it, select the agent class furthest below its weighted share; +3. within that class, select graph priority then oldest readiness using stable ties; and +4. select the eligible provider with available concurrency and the least recent fair usage. + +Unused weighted share flows automatically to other ready work. Add a strict cap only for a verified external limit. + +Provider arbitration compares eligible teams globally so one busy team cannot monopolize provider concurrency. It compares scheduling metadata only and preserves team/project isolation. + +Charge actual attempt seconds, including failures and retries, and settle each attempt exactly once. Provider-native usage remains separate from fairness seconds. + +## Implementation Checklist + +### Phase 1 — Profiles and contracts + +- [x] Replace the current profile schema with the minimal complete shape above. +- [x] Keep common context once and activity-specific additions only where needed. +- [x] Require one effective handler, meaningful prompt, and simple content/tool permission ceiling for each enabled activity; keep parameters optional. +- [x] Permit `reviewing` only on the Reviewer profile by default; remove reviewing profiles from Architect, Engineer, Tester, Releaser, Researcher, and Technical Writer. +- [x] Replace authority presets, raw tool allow/deny lists, commit flags, branch policy, and per-model operation matrices with deny-by-default `content.read`, `content.write`, and stable tool groups. +- [x] Use only registered core content models in permission ceilings; add no `architecture`, `review`, or `workday-report` model. +- [x] Extend the one generic entity-reference contract with exact path, commit, optional heading anchor, and optional line range; use it on notes, questions, and decisions. +- [x] Add explicit `proposal`, `work-review`, and `publication` classes plus authority/approval/vote evidence to the one decision model. +- [ ] Generate SDK types/validators from `docs/agent.schema.yml` or enforce exact structural equivalence in CI. +- [x] Add simple `dependsOn.agents` and `dependsOn.events` selectors with no cardinality or scope configuration. +- [x] Add the shared `Handler`, assignment context/result/reference, workspace, workday, and capacity contracts. +- [x] Accept built-in and project-owned handler IDs structurally; validate availability against the exact runtime build. +- [ ] Generate CLI descriptors from the SDK and delete old profile/allocation schemas without compatibility unions. + +Acceptance: + +- [x] Complete first-party profiles validate and missing handlers, prompts, permissions, invalid dependencies, non-Reviewer reviewing profiles, or unavailable runtime handlers fail clearly. +- [ ] CLI profile inspection shows the effective handler, origin, prompt, context, permission ceiling, and unresolved dependency selectors for each activity. + +### Phase 2 — AgentKernel and deterministic Reporter + +- [x] Implement the single AgentKernel entry point and build-time handler registry. +- [x] Route the existing isolated provider transport through AgentKernel. +- [ ] Compile exact grants within the activity ceiling and team/project policy; block admission when required authority is unavailable. +- [x] Enforce immutable assignment grants at runtime-service calls and validate the one result contract. +- [x] Implement deterministic `ReporterHandler` with no model dependency. +- [x] Commit the report through TreeDX and return its ordinary exact reference. +- [ ] Remove Reporter-specific scheduling/provider behavior. + +Acceptance: + +- [x] One real closing Reporter assignment executes API → provider → AgentKernel → Reporter → result → settlement through the CLI. +- [x] Identical authorized inputs produce identical report bytes. +- [ ] Unknown handler, wrong build, expired assignment, denied service, invalid result, cancellation, and timeout fail closed. + +### Phase 3 — Reusable and project-owned handlers + +- [x] Implement `WriterHandler`, `ActorHandler`, `EstimateHandler`, `ReleaserHandler`, and `ReporterHandler` against the shared interface. +- [x] Migrate Architect, Engineer, Tester, Releaser, Reporter, Researcher, Reviewer, and Technical Writer to the default matrix above with complete prompts. +- [ ] Prove Architect → Tester → Engineer ordering, activity-specific planning/estimating dependencies, and the Releaser/Technical Writer dependencies above. +- [ ] Make the Architect maintain a conventional ` Architecture` book of validated knowledge pages. +- [x] Route Reviewer findings through notes/questions and formal dispositions through decisions, all bound to exact candidate references. +- [x] Remove Reviewer acting behavior; route proposal review and every required acting-work review through the same Reviewer `reviewing` profile. +- [ ] Add one project-owned handler that reuses or implements the shared interface and prove selection without changing Agent-package code. +- [ ] Keep books, knowledge, proposals, notes, questions, classed decisions, proposal-embedded estimates, and note-based workday reports on ordinary TreeDX operations. +- [ ] Remove TreeDX assignment-plan, assignment-status, and assignment-summary content; consume PostgreSQL assignment state and general results instead. +- [ ] Keep source work on ordinary Git commit/push and general-result references. +- [ ] Delete generic guest/provider semantic branches replaced by handlers. + +Acceptance: + +- [ ] Every enabled activity resolves exactly one handler from its pinned runtime build. +- [ ] Default handlers are reused across agent classes. +- [ ] Project prompt/context customization requires no handler copy. +- [ ] One reviewed acting work item automatically dispatches Actor then Reviewer assignments without either profile naming the generated node. +- [ ] Request changes returns exact findings to a new actor attempt against the same objective and then dispatches the next Reviewer attempt. +- [ ] One project-owned behavior override passes a real CLI assignment. + +### Phase 4 — Workday planning and fair capacity + +- [ ] Implement `workday plan` and `workday start` with one shared compiler. +- [ ] Guarantee every eligible agent self-directed planning time and two planning rounds. +- [ ] Admit ready graph nodes directly; create no capacity-plan or demand records. +- [ ] Implement project and agent-class weighted fairness with stable ties and automatic idle-share flow. +- [ ] Implement provider-global team fairness and hard provider-native gates. +- [ ] Implement active → closing → ended lifecycle and derive closeout capacity from required closeout estimates. +- [ ] Keep communication concurrency independent from ordinary work. +- [ ] Settle every attempt exactly once and expose allocation explanations through the CLI. + +Acceptance: + +- [ ] A zero-proposal workday gives every participating agent planning work and can create new proposals. +- [ ] Second-round assignments can use accepted first-round contributions. +- [ ] Mid-workday content changes add eligible work without restarting the workday. +- [ ] Multi-project, multi-class, multi-team, retries, failures, idle share, and stable ties pass deterministic tests. +- [x] Reporter runs during closing and the workday ends only after report completion and settlement. + +### Phase 5 — Integration, clean cutover, and managed acceptance + +- [ ] Consume ready nodes and predecessor results only through the contracts owned by `docs/agent-assignments.md`. +- [ ] Use one assignment-selected `read-only`, `treedx`, or `git` workspace mode and permit reads from exact refs in either custody system. +- [ ] Split required Git and TreeDX mutations into dependent assignments; add no dual-write workspace. +- [ ] Create explicit integration assignments whenever several Git predecessors must be combined. +- [ ] Delete AgentKernelProfile/Policy, metadata-only handler routing, dynamic module/process loading, duplicate authority presets/raw tools/branch policies/context, old allocation hierarchy, fixed team polling, and alternate provider execution paths. +- [ ] Remove every compatibility field, parser, alias, route, table, fixture, test, document, and feature switch associated with the retired architecture. +- [ ] Run architecture-specific CLI acceptance, then reference the assignment plan's graph acceptance receipt rather than repeating it. +- [ ] Publish and read back one coordinated compatible release set. + +Architecture CLI surface: + +```text +trsd agents handlers list --json +trsd agents handlers show --json +trsd agents profiles validate --json +trsd agents profiles show --json +trsd capacity workday plan --team --json +trsd capacity workday start --team --json +trsd capacity workday status --json +trsd capacity workday stop --json +trsd capacity explain --team --json +``` + +Handler inspection identifies Agent-package or project-runtime origin. Profile inspection shows one effective handler per activity. Capacity explanation shows gates, fair-share state, provider choice, and reservation evidence. + +## Delivery Order + +```text +Profile/handler contracts + ├── AgentKernel + Reporter + └── assignment graph dependency projection + ↓ +default/project handlers + profile migration + ↓ +workday planning + fair capacity + ↓ +clean cutover + managed acceptance +``` + +AgentKernel and API graph work may proceed concurrently after shared SDK contracts are fixed. Do not parallelize final schema cutover, generated catalogs, deletion audit, coordinated releases, or managed acceptance. + +Stop and record a blocker if exact authority, isolation, project access, provider capability, or clean cutover cannot be proven. Do not add compatibility behavior to work around a blocker. + +## Verified Baseline + +| Date | Verified fact | Evidence | +|---|---|---| +| 2026-09-14 | One build-time handler registry and AgentKernel execute the isolated provider transport | Focused Agent kernel/provider suites; source-backed Kata acceptance retained in Issue #520 | +| 2026-09-14 | Deterministic Reporter commits through TreeDX and settles through the ordinary completion path | Focused Agent/API tests; live Reporter receipt retained in Issue #520 | +| 2026-09-14 | Persistent development selections run the touched SDK, API, Agent, and TreeDX components | Managed development status read-back; no RC required | + +## Observations and Blockers + +### Current integrated state + +- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Reporter closeout and source-backed Kata execution are proven; assignment-graph evidence remains owned by `docs/agent-assignments.md`. + +### Current active blocker + +- No external blocker is active. The architecture remains incomplete until the generated Git Actor and Reviewer cycle proves exact workspace enforcement and one AgentKernel completion path end to end. + +### Next acceptance milestone + +- Complete the proposal-to-approval frontier defined in `docs/agent-assignments.md`, then use that receipt as the architecture acceptance reference before expanding the activity-profile matrix. + +## Completion + +This plan is complete only when every assignment executes through one AgentKernel and one handler from the pinned Agent/project build; every first-party activity has a complete profile, default handler, meaningful prompt, simplified permission ceiling, and applicable standing dependencies; only Reviewer normally enables reviewing; architecture, review, and workday reporting use registered core models and classed decisions; `docs/agent.schema.yml` matches runtime contracts; TreeDX contains no assignment plan/status/summary authority; every assignment has one exact enforced grant and at most one mutable workspace; workdays guarantee planning and fairly allocate ready graph work; managed CLI acceptance passes; and no legacy implementation or backward compatibility remains. diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md new file mode 100644 index 00000000..53d7e3d6 --- /dev/null +++ b/docs/agent-assignments.md @@ -0,0 +1,448 @@ +# Living Agent Assignment Graph Implementation Plan + +**Status:** in progress +**Plan created:** 2026-09-12 +**Last architecture review:** 2026-09-13 +**Scope:** proposal planning, decisions, living execution graph, assignments, results, review, and graph reconciliation +**Related plan:** [`docs/agent-architecture.md`](./agent-architecture.md) owns profiles, handlers, AgentKernel, workspaces, workday allocation, and provider selection +**Explicit non-goal:** UI implementation + +## Objective + +Replace the frozen planning DAG, per-decision assignment graphs, capacity-plan work units, and demand records with one continuously reconciled team execution graph. + +```text +TreeDX content or assignment result + ↓ +deterministic API reconciliation + ↓ +living execution nodes and dependencies + ↓ +ready node → immutable assignment attempt + ↓ +general result → reconciliation +``` + +Agents author governed content and return assignment results. They never mutate graph nodes, edges, readiness, or scheduling state. A ready node is assignment demand. + +For reviewed acting work, the graph treats Actor and Reviewer assignments as alternating phases of one accepted work-item objective. Candidate return enables review; request changes advances the same pair; approval completes the work item. + +## Progress Reporting + +Whoever implements this plan must update its checkboxes and the short **Observations and blockers** section in the same change. Mark an item complete only when its listed CLI, test, Actions, or exact-ref evidence exists. Keep detailed logs in Actions artifacts and the governing GitHub Issue; do not duplicate them here. + +Checkboxes report implementation status only: + +- `[ ]` not implemented or not verified +- `[x]` implemented and verified +- `BLOCKED:` requires an active entry under **Observations and blockers** + +## Decisions + +- TreeDX is the durable authority for proposals, questions, answers, decisions, reviews, reports, and other planning content. +- PostgreSQL stores only operational graph projections, graph revisions, assignments, leases, reservations, provider state, and exact TreeDX references. +- There is one team execution graph. Project and decision graphs are filtered views. +- Graph changes are deterministic reactions to content changes, assignment results, and lifecycle state. There is no user-authored graph-change object. +- Activity profiles may declare standing dependencies using agent-class and lifecycle-event names. Profiles never contain generated node or assignment IDs. +- Accepted proposal work may add work-specific dependencies between stable work-item IDs. +- All concrete dependencies become the same execution-node edges. +- Every acting work item declares whether independent review is required. Required review deterministically projects an Actor → Reviewer pair for the same work-item objective. +- Rejection advances that same stable pair through bounded node revisions; it does not create unrelated revision work items. +- Activity-profile permissions are deny-by-default ceilings. Assignments receive exact narrower grants; profiles never grant runtime authority directly. +- Each accepted work item selects one workspace mode: `read-only`, `treedx`, or `git`. An assignment has at most one mutable workspace. +- Workdays govern admission and accounting but never freeze the graph. +- Running assignments are immutable snapshots. Graph evolution creates later node revisions or assignment attempts. +- No legacy implementation or backward compatibility remains after cutover. + +## Canonical Planning Content + +### Proposal-owned execution plan + +Use one proposal document as the authority for both the proposal and its executable plan: + +```yaml +id: pagination-reliability +request: Make pagination behavior reliable across the SDK. +summary: Generated and refined during planning. +executionPlan: + workItems: + - id: architecture + activity: acting + agentClass: architect + workspace: treedx + review: required + objective: Define the required behavior and boundaries. + estimate: + minimumSeconds: 600 + expectedSeconds: 900 + maximumSeconds: 1200 + reviewEstimate: + minimumSeconds: 180 + expectedSeconds: 300 + maximumSeconds: 600 + maximumReviewCycles: 2 + dependsOn: [] + requestedPermissions: + content: + read: [book, knowledge, objective, proposal, decision, note, question] + write: [book, knowledge] + tools: [source.read] + requiredCapabilities: [] + acceptanceCriteria: + - Public behavior and failure cases are explicit. +``` + +Agents may estimate several work items in one planning contribution, and several agents may propose alternatives during discussion. The accepted estimate for each work item is written into the proposal-owned plan. Alternative values remain in TreeDX history or discussion; they are not separate operational scheduling authorities. + +A decision accepts one exact proposal revision and digest. There is no separate execution-plan record, structured-estimate database authority, or decision-time plan reconstruction. + +### Proposal readiness + +A proposal may be decided only when: + +- every executable work item has an activity, agent class, workspace mode, review policy, objective, valid minimum/expected/maximum estimate, and acceptance criteria; +- every required review has its own valid estimate and bounded maximum cycle count; +- the selected workspace and required authority fit the activity profile's permission ceiling and team/project policy; +- every work-specific dependency references another work item in the same plan and the plan is acyclic; +- blocking questions and feedback are resolved or withdrawn; +- decision-authority prerequisites reference exact current content revisions; and +- the exact proposal revision presented for decision is the revision that will be executed. + +### Discussion and conditions + +Questions, answers, feedback, approvals, external state, and authority validity remain ordinary governed content. Reconciliation represents anything that blocks execution as a condition node. A question addressed to an agent class may also create an answer or research work node. + +### Core content + +Use the registered core content vocabulary. Do not introduce `architecture` or `review` models merely to name a subject or activity. + +- Architect output extends a conventional ` Architecture` `book` through validated `knowledge` pages. +- Review findings and concerns are `note` content. +- Unresolved review matters are `question` content. +- Workday reports are `note` content referencing the exact workday, assignments, results, usage, releases, and publications they summarize. +- `decision` content has an explicit class: `proposal`, `work-review`, or `publication`, plus an authority, approval, or vote method and its exact decision-maker evidence. Proposal acceptance and formal approved/request-changes review dispositions use that one model. +- The general assignment result references the exact TreeDX revisions and Git commits. + +The generic entity-reference contract supports an exact model, item, commit, path, optional heading anchor, and optional start/end line and is shared by notes, questions, and decisions. Reuse it for review evidence and workday reports. Add a new content model only when a required validated structure, lifecycle, authorization rule, control-plane action, or query cannot be expressed by a core model. + +[`docs/agent.schema.yml`](./agent.schema.yml) is the machine-readable target object model for this plan. Runtime SDK types, generated validators, API storage, Agent assignment context, CLI schemas, and fixtures must be derived from or verified against that one contract; do not maintain a second handwritten schema with different fields. + +## Dependency Model + +### Profile dependencies + +Activity profiles express permanent workflow rules in language suitable for an agent builder: + +```yaml +dependsOn: + agents: [architect] + events: [] +``` + +Initial semantics are fixed: + +- every listed dependency is required; +- an agent selector matches all applicable nodes for that class; +- decision work matches within the same decision; +- proposal work matches within the same proposal revision; +- workday activity matches within the same workday; +- a missing required dependency leaves the node blocked with an explanation; and +- self-dependencies and cycles are invalid. + +Standing agent dependencies apply only to the scheduled activity profiles that declare them. They do not implicitly constrain chat. A dependency on reviewed acting work is satisfied only when its work-item pair is approved, not when the actor merely returns a candidate. Reviewer nodes are subject-bound and generated by reconciliation; the Reviewer profile never lists every possible producer. + +Lifecycle events are projected as condition nodes. Use `workday-closing`, not `workday-ended`: regular admissions stop at closing, required closeout assignments run, and the workday becomes ended only after closeout and settlement complete. + +### Work-specific dependencies + +Proposal work items may add ordering needed only for that proposal: + +```yaml +- id: integration + agentClass: releaser + dependsOn: [implementation, verification] +``` + +Profile dependencies are invariant minimums. Work-specific dependencies may add edges but cannot remove profile requirements. + +The initial SDK workflow resolves as follows: + +```text +Architect planning → Reviewer proposal review → decision +Architect acting → Reviewer approval + ↓ +Tester acting ───→ Reviewer approval + ↓ +Engineer acting ─→ Reviewer approval + │ │ + └──────┬─────────┘ + ↓ +Technical Writer acting → Reviewer approval + ↓ + Releaser +workday-closing → Reporter +``` + +Engineer planning and estimating depend on Architect, while Engineer acting depends on Tester. Tester planning, estimating, and acting depend on Architect. Releaser planning and estimating depend on Architect; acting depends on Engineer, Technical Writer, and all applicable required Reviewer nodes. Technical Writer planning and estimating depend on Architect; acting depends on Engineer and Tester. + +Use one Reviewer class and its `reviewing` activity. Every acting work item with `review: required` expands into two stable internal nodes: the declared actor node and a Reviewer node. `review: required` is the default; `review: none` must be explicit and is reserved initially for deterministic release, integration, or closeout work whose accepted predecessors are already reviewed. Do not create Reviewer subclasses, enable reviewing on producer agents, or require users to author the generated review node. + +Proposal review also uses the Reviewer `reviewing` profile, but it is projected from proposal governance rather than an acting pair. The Releaser depends on approved work-item pairs and all applicable required review decisions. + +### Concrete edges + +The API resolves both sources into one edge table: + +```text +from_node_id → to_node_id +``` + +Edges, not node JSON, are the storage authority for dependencies. Each edge records whether it came from a profile agent selector, profile lifecycle selector, or proposal work-item relation. Assignment IDs are attempts and are never dependency targets. + +A node becomes ready when all predecessor work nodes have completed successfully and all predecessor condition nodes are satisfied. Downstream assignments receive the completed predecessor results. + +## Operational Model + +### Execution node + +An execution node contains only facts required to identify and execute work: + +```yaml +id: deterministic-id +teamId: team-id +projectId: project-id +workItemId: architecture +pairRole: actor | reviewer | null +kind: planning | estimating | acting | reviewing | reporting | condition +sourceRef: + model: proposal + id: pagination-reliability + revision: 3 + digest: sha256 +ruleRevision: 1 +nodeRevision: 2 +agentClass: engineer +status: proposed | blocked | ready | assigned | running | completed | failed | cancelled | stale +estimate: + minimumSeconds: 900 + expectedSeconds: 1800 + maximumSeconds: 3600 +requiredCapabilities: [] +workspace: read-only | treedx | git +``` + +Node identity is deterministic from team, project, source content, rule revision, activity, agent class, work-item identity, and pair role. A reviewed acting work item has stable actor and reviewer node IDs. Reconciliation replay cannot create a duplicate. + +Do not duplicate edges, active assignment IDs, or derived blocking explanations inside canonical node JSON. API read models may display those values by joining their authoritative stores. + +### Graph revision + +Use one append-only graph-revision record as revision, reconciliation receipt, audit summary, and watch cursor. It contains: + +- revision number; +- changed source and lifecycle refs; +- reconciliation-rule revision; +- resulting graph digest; and +- compact added, changed, completed, blocked, and stale node/edge IDs. + +Do not add a second reconciliation-event or receipt authority. + +### Assignment attempt + +An assignment is an immutable attempt to execute one node revision. It freezes: + +- graph and node revision; +- source content and decision authority; +- proposal-plan revision; +- effective activity profile and handler; +- required capabilities, profile permission ceiling, and exact assignment grants; +- provider offer and runtime build; +- authorized context and predecessor results; and +- selected workspace mode and exact mutable scope; +- workday capacity envelope, deadline, lease, and reservation. + +The actor and reviewer assignments reserve and settle their own accepted estimates and actual usage. Work-item usage is the derived sum of those attempts. Failure, return, retry, or review rejection creates another attempt against an advanced node revision. Existing assignments are never rewritten. + +### Assignment result + +Use one result contract: + +```yaml +status: completed | blocked | failed +summary: concise outcome +references: + - kind: git | treedx | url +verification: [] +usage: {} +diagnostics: [] +``` + +Git references contain repository, exact commit, and optional branch. TreeDX references contain project, path, and exact commit. Do not create source-candidate records, bundles, artifact manifests, output taxonomies, or per-operation result schemas. + +### Review and revision + +- The actor assignment returns an immutable candidate result and completes that actor attempt; the reviewed work item remains awaiting review. +- Its paired Reviewer node becomes ready and receives the exact candidate, objective, acceptance criteria, references, verification, and relevant ` Architecture` knowledge. +- The Reviewer cannot mutate the candidate. Findings are notes, unresolved matters are questions, and the formal disposition is a decision bound to the exact candidate. +- Approval completes the Reviewer attempt and the work item. Only then are work-item dependencies satisfied. +- Request changes advances the same actor and Reviewer nodes to their next revisions. The actor receives the exact decision and findings; the prior candidate and review remain immutable. +- Each revision repeats Actor → Reviewer against the same objective and accepted plan. No new work item or alternate graph path is created. +- Exhausting `maximumReviewCycles` blocks the work item and requires an explicit new decision; it never silently approves or continues. +- Proposal review uses the same Reviewer profile and core content outputs but gates decision readiness rather than an acting work item. + +This preserves the internal act/review loop while keeping the two attempts independently assigned, permissioned, metered, and auditable. + +### Capability demand + +Reconciliation compiles activity-profile and accepted-work requirements once into `node.requiredCapabilities`. Admission compares that demand with provider supply. The assignment snapshots the result. AgentKernel enforces assignment grants but does not recalculate scheduling demand. + +At admission, the API compiles the work item's requested content and tool authority within the activity profile ceiling and team/project policy. It verifies provider support and freezes the exact result on the assignment. Missing required authority blocks the node with an explanation; it is not silently removed. Exact paths, content scope, and external grants belong only to the assignment. + +## Implementation Checklist + +### Phase 1 — Canonical proposal and plan + +- [x] Draft proposal intake accepts the human request plus optional title, objective refs, and evidence refs. +- [ ] Replace separate execution-plan and operational estimate authorities with the proposal-owned `executionPlan.workItems` contract. +- [ ] Support several work items per estimating contribution and collaborative refinement of their canonical estimates. +- [ ] Require workspace mode, review policy, actor/reviewer estimates, bounded review cycles, acceptance criteria, acyclic work dependencies, satisfiable permission ceilings, and resolved blockers before decision. +- [ ] Use `book`, `knowledge`, `note`, `question`, and classed `decision` content for architecture, review, workday reporting, and publication workflows; record authority/approval/vote evidence inside the decision and add no `architecture`, `review`, or `workday-report` content model. +- [ ] Extend generic entity references with exact path, commit, optional heading anchor, and optional line range and use them on notes, questions, and decisions. +- [ ] Generate or verify SDK types, validators, API records, CLI schemas, and fixtures against `docs/agent.schema.yml`. +- [x] Bind every accepted decision to one exact executable proposal revision and digest. +- [ ] Project questions, answers, feedback, approvals, external state, and authority prerequisites as conditions. +- [ ] Delete obsolete content schemas, routes, and parsers in the same cutover; add no compatibility translation. + +Acceptance: + +- [ ] `trsd` can create, read, discuss, estimate, validate, and decide the proposal through normal TreeDX operations. +- [ ] Invalid estimates, dependencies, blockers, or stale authority prevent decision without mutating graph state. + +### Phase 2 — Living graph and dependency projection + +- [x] Add monotonic team graph revisions and deterministic projection from test TreeDX fixtures. +- [x] Make projection replay order-independent and idempotent. +- [x] Store nodes, edges, assignments, and graph revisions once each; remove duplicated node JSON fields. +- [ ] Resolve activity-profile agent selectors and lifecycle selectors into concrete edges. +- [ ] Apply dependencies only to the declaring activity; exclude chat from implicit workflow dependencies. +- [ ] Expand every `review: required` acting work item into stable actor and Reviewer nodes under the same work-item identity. +- [x] Project proposal governance review through the same Reviewer `reviewing` profile without creating an acting pair. +- [ ] Project lifecycle events as condition nodes, including `workday-closing`. +- [ ] Union profile and work-item edges with deterministic provenance and cycle validation. +- [ ] Reconcile only the affected connected component after a source change. +- [ ] Expose graph, node, edge provenance, blocking explanation, and read-only reconciliation plan through generated CLI operations. + +Acceptance: + +- [ ] Architect → Tester → Engineer and Engineer/Tester → Technical Writer materialize without profile-authored graph IDs. +- [ ] Proposal review gates decision and every required Actor → Reviewer pair gates downstream work-item readiness. +- [ ] Releaser waits for approved Engineer and Technical Writer work-item pairs and every other applicable required review. +- [x] `workday-closing` → Reporter materializes as an ordinary condition dependency. +- [ ] Replaying identical inputs produces no changes, duplicate nodes, or duplicate edges. + +### Phase 3 — Direct assignment lifecycle + +- [x] Treat every ready assignable node as demand for the allocator defined in `docs/agent-architecture.md`. +- [ ] Claim a node and create its immutable assignment, lease, reservation, and idempotency receipt transactionally. +- [x] Compile required capabilities during reconciliation and compare them directly with provider offers during admission. +- [ ] Validate requested content/tool authority against the activity profile ceiling and team/project policy; freeze the exact grant on the assignment. +- [ ] Select the accepted work item's `read-only`, `treedx`, or `git` workspace and permit exact read context from either custody system. +- [ ] Enforce one mutable workspace per assignment and reject dual Git/TreeDX mutation work items. +- [ ] Preserve running assignments when the graph changes; cancel or supersede only through explicit lifecycle rules. +- [ ] Advance node revision for retry or replacement so a new assignment has a distinct deterministic identity. +- [ ] Remove decision execution inputs, capacity-plan work units, workday demand rows, and alternate assignment-synthesis paths. + +Acceptance: + +- [ ] One CLI-visible ready node produces exactly one assignment and reservation. +- [ ] The assignment exposes its profile ceiling, exact grant, workspace mode, mutable scope, and denied or missing authority explanation. +- [ ] Replay produces no duplicate assignment or charge. +- [ ] Ineligible providers and blocked dependencies have exact explanations. + +### Phase 4 — Results, review, revision, and multiple projects + +- [x] Accept only the one general result contract and ordinary Git, TreeDX, or URL references. +- [ ] Complete an actor attempt on candidate return while keeping its work item incomplete until the paired review is approved. +- [ ] Pass predecessor results into dependent assignment context. +- [x] Record review findings as notes/questions and formal disposition as a decision bound to the exact candidate. +- [ ] Advance the same actor/reviewer node pair on request changes; create no unrelated revision work item. +- [ ] Enforce bounded review cycles and block for a new decision when exhausted. +- [ ] Support one team graph spanning multiple projects and decisions. +- [ ] Preserve project-scoped content and repository authority across cross-project scheduling. +- [ ] Fail closed when a cross-project dependency lacks an explicit TreeDX relation and read grant. +- [ ] Admit newly ready work during the current active workday. + +Acceptance: + +- [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. +- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. +- [ ] Two projects progress in one team graph without copying project graphs or leaking context. + +### Phase 5 — Clean cutover and managed CLI acceptance + +- [ ] Route planning, estimating, acting, reviewing, reporting, and communication exclusively through living graph nodes. +- [ ] Remove TreeDX `assignment_plan`, `assignment_status`, and `assignment_summary`; proposal content owns planning and PostgreSQL owns assignment state and results. +- [ ] Delete frozen signal scheduling, fixed engineering graph compilation, decision graph documents, execution inputs, capacity plans, demand records, duplicate estimate storage, source-candidate storage, and superseded operations. +- [ ] Remove all compatibility fields, aliases, parsers, routes, tables, tests, fixtures, documentation, and feature switches for retired paths. +- [ ] Initialize a clean pre-launch schema and rebuild operational graph state from exact TreeDX refs. +- [ ] Run the complete CLI story below locally and in managed staging. +- [ ] Publish and read back one coordinated compatible release set. + +Final CLI story: + +1. Create and collaboratively complete a proposal-owned execution plan. +2. Resolve a blocking question and validate the exact proposal revision. +3. Accept the proposal and observe deterministic graph reconciliation. +4. Explain profile-derived and work-specific dependencies. +5. Admit and execute the required Architect, Tester, Engineer, Technical Writer, Reviewer, Releaser, and Reporter nodes in graph order. +6. Verify each assignment's permission ceiling, exact grant, workspace mode, and mutable scope. +7. Request changes on one candidate, repeat the same Actor → Reviewer pair, and approve the replacement. +8. Add a proposal or answer during the active workday and observe immediate graph evolution. +9. Read exact results, references, usage, settlement, and final graph state. +10. Replay reconciliation and prove zero duplicate nodes, edges, assignments, reservations, or settlements. + +Required CLI surface: + +```text +trsd execution graph show --team --json +trsd execution graph watch --team --json-stream +trsd execution node show --json +trsd execution node explain --json +trsd execution reconcile --team --plan --json +trsd execution assignments list --team --json +trsd execution assignments show --json +``` + +## Package Responsibilities + +This plan adds only assignment-specific responsibilities to the ownership table in `docs/agent-architecture.md`: + +- SDK: proposal-plan, graph, edge, condition, assignment, result, and CLI contracts; permission and workspace contracts remain owned by the architecture plan. +- API: projection, storage, readiness, exact-grant compilation, workspace selection, assignment lifecycle, result reconciliation, and explanation. +- Agent: enforce the immutable assignment grant, operate only in the selected workspace, return the general result, and never mutate graph state. + +## Verified Baseline + +| Date | Verified fact | Evidence | +|---|---|---| +| 2026-09-14 | Draft proposal intake, exact proposal revision/digest binding, and proposal-governance review use the living graph contracts | Focused SDK/API proposal and projection suites; current development read-back | +| 2026-09-14 | Ready-node admission compiles provider capability demand and closing Reporter dependency from the same graph | Focused API admission/projector suites; Reporter settlement receipt retained in Issue #520 | +| 2026-09-14 | The complete generated Actor → Reviewer request-changes cycle is not yet accepted | This remains the sole end-to-end frontier below | + +## Observations and Blockers + +### Current integrated state + +- The canonical proposal-review path runs through the living graph, provider admission, Kata isolation, AgentKernel, the Reviewer handler, one general result contract, TreeDX disposition, cleanup, and settlement. Focused SDK, API, and Agent suites pass against the current development sources; detailed defect evidence is maintained in Platform Issue #520. + +### Current active blocker + +- No external blocker is active. The unproven boundary is the complete generated work-review cycle; prior proposal-review and isolated profile evidence do not prove it. + +### Next acceptance milestone + +- Accept one exact proposal, generate its Git Actor and Reviewer nodes, obtain request changes, revise the same work item, re-review the replacement candidate, approve it, and prove terminal reconciliation without duplicate assignments or settlements. + +## Completion + +This plan is complete only when all phase checkboxes are verified, one content-derived graph and assignment path remains, agents have no graph mutation capability, required acting work deterministically completes bounded Actor → Reviewer cycles against one objective, architecture/review/reporting workflows use registered core content models and classed decisions, `docs/agent.schema.yml` matches runtime contracts, TreeDX contains no assignment plan/status/summary authority, every assignment has an enforceable exact grant and at most one mutable workspace, the managed CLI story passes, and no legacy implementation or backward compatibility remains. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml new file mode 100644 index 00000000..834c3662 --- /dev/null +++ b/docs/agent.schema.yml @@ -0,0 +1,2219 @@ +# Canonical target contract for the agent execution system. +# +# This is JSON Schema 2020-12 written as YAML. It is intentionally strict: +# stored records reject unknown fields so architecture drift becomes a validation +# failure. Generate SDK types and validators from this file, or prove exact +# structural equivalence in CI. Do not copy these definitions into another +# handwritten schema. +# +# Storage boundary: +# - TreeDX stores governed content and its exact revision history. +# - PostgreSQL stores operational execution, capacity, and custody state. +# - Git stores source candidates; PostgreSQL results hold exact Git references. +# Package use: +# - SDK owns this portable contract and generated validators/types. +# - API validates content projections and owns PostgreSQL records/lifecycle. +# - Agent consumes immutable assignments and emits AssignmentResult. +# - Capacity providers exchange offers, assignments, leases, and results. +# - CLI renders and validates these same contracts without business-rule copies. +# +# Deliberately absent: +# architecture, review, workday-report, assignment_plan, assignment_status, +# assignment_summary, source-candidate, capacity-plan, and demand models. +# Architecture is a book/knowledge convention, review uses note/question/decision, +# and a workday report is a classified note. Assignment lifecycle belongs solely +# to the PostgreSQL records below. + +$schema: "https://json-schema.org/draft/2020-12/schema" +$id: "https://treeseed.ai/schema/agent-execution/v1" +title: TreeSeed agent execution object model +description: >- + The complete ideal object model from governed planning content through a living + execution graph, assignment execution, review, release or publication, workday + reporting, and usage settlement. +$comment: >- + The root union validates stored records. Runtime-only DTOs such as + AssignmentContext are addressable through $defs. SDK/API semantic validation + must additionally enforce ordered estimate bounds; unique work-item IDs; + local, acyclic dependencies; requested permissions within profile and policy + ceilings; exact current authority refs; deterministic node/edge identity; + one active assignment per node revision; two ordered planning rounds; bounded + review cycles; immutable assignment inputs; and exactly-once settlement. + +# A document validated at the root must be exactly one stored record type. +oneOf: + - $ref: "#/$defs/AgentProfile" + - $ref: "#/$defs/Book" + - $ref: "#/$defs/Knowledge" + - $ref: "#/$defs/Objective" + - $ref: "#/$defs/Discussion" + - $ref: "#/$defs/DiscussionMessage" + - $ref: "#/$defs/Proposal" + - $ref: "#/$defs/Question" + - $ref: "#/$defs/Note" + - $ref: "#/$defs/Decision" + - $ref: "#/$defs/TreeDxWorkspace" + - $ref: "#/$defs/TreeDxWorkspaceReview" + - $ref: "#/$defs/TreeDxPublicationReceipt" + - $ref: "#/$defs/Team" + - $ref: "#/$defs/Project" + - $ref: "#/$defs/AgentRegistration" + - $ref: "#/$defs/WorkdayPolicy" + - $ref: "#/$defs/ProviderOffer" + - $ref: "#/$defs/ProviderState" + - $ref: "#/$defs/Workday" + - $ref: "#/$defs/GraphRevision" + - $ref: "#/$defs/ExecutionNode" + - $ref: "#/$defs/ExecutionEdge" + - $ref: "#/$defs/AssignmentAttempt" + - $ref: "#/$defs/Lease" + - $ref: "#/$defs/Reservation" + - $ref: "#/$defs/AssignmentResult" + - $ref: "#/$defs/UsageSettlement" + +$defs: + # --------------------------------------------------------------------------- + # Shared scalar and reference contracts + # --------------------------------------------------------------------------- + + Identifier: + type: string + minLength: 1 + maxLength: 200 + pattern: "^[A-Za-z0-9][A-Za-z0-9._:/-]*$" + + Slug: + type: string + minLength: 1 + maxLength: 100 + pattern: "^[a-z0-9]+(?:[._/-][a-z0-9]+)*$" + + NonEmptyText: + type: string + minLength: 1 + + Timestamp: + type: string + format: date-time + + Sha256Digest: + type: string + pattern: "^sha256:[a-f0-9]{64}$" + + GitCommit: + type: string + pattern: "^[a-f0-9]{40}$" + + PositiveSeconds: + type: integer + minimum: 1 + + NonNegativeSeconds: + type: integer + minimum: 0 + + ContentModel: + # This is the entire core vocabulary available to profile permissions. + enum: + - agent + - book + - knowledge + - objective + - discussion + - discussion-message + - proposal + - question + - note + - decision + + DecisionClass: + # One decision model, with classes that select its governance semantics. + enum: [proposal, work-review, publication] + + DecisionDisposition: + enum: [approved, rejected, request-changes, deferred, superseded] + + DecisionPosition: + # Embedded signed position for approval or voting; it is not another model. + type: object + required: [actorRef, position, recordedAt] + properties: + actorRef: + $ref: "#/$defs/ExactEntityReference" + position: + enum: [approve, reject, abstain] + rationale: + type: string + recordedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + WorkspaceMode: + enum: [read-only, treedx, git] + + ActivityName: + enum: [planning, estimating, acting, reviewing, reporting, chat] + + ExecutionKind: + enum: [planning, estimating, acting, reviewing, reporting, communication, condition] + + AgentClass: + # Project-defined classes remain possible; first-party defaults use these IDs. + type: string + minLength: 1 + maxLength: 100 + pattern: "^[a-z][a-z0-9-]*$" + + ToolGroup: + # Profiles use stable groups, never provider-specific raw tool names. + enum: + - discussion + - source.read + - source.write + - verification + - release + + ExactEntityReference: + # Shared by notes, questions, decisions, assignment context, and reports. + # revision/digest pins TreeDX; commit pins Git or a TreeDX repository snapshot. + type: object + required: [store, model, id] + properties: + store: + enum: [treedx, postgresql, git, url] + model: + type: string + minLength: 1 + id: + $ref: "#/$defs/Identifier" + revision: + type: integer + minimum: 1 + digest: + $ref: "#/$defs/Sha256Digest" + repository: + type: string + minLength: 1 + commit: + $ref: "#/$defs/GitCommit" + path: + type: string + minLength: 1 + anchor: + type: string + minLength: 1 + startLine: + type: integer + minimum: 1 + endLine: + type: integer + minimum: 1 + url: + type: string + format: uri + allOf: + - if: + type: object + required: [endLine] + then: + type: object + required: [startLine] + - if: + type: object + properties: + store: + const: treedx + required: [store] + then: + type: object + anyOf: + - type: object + required: [revision, digest] + - type: object + required: [commit] + - if: + type: object + properties: + store: + const: git + required: [store] + then: + type: object + required: [repository, commit] + - if: + type: object + properties: + store: + const: url + required: [store] + then: + type: object + required: [url] + additionalProperties: false + + GitReference: + type: object + required: [kind, repository, commit] + properties: + kind: + const: git + repository: + type: string + minLength: 1 + commit: + $ref: "#/$defs/GitCommit" + branch: + type: string + minLength: 1 + path: + type: string + minLength: 1 + additionalProperties: false + + TreeDxReference: + type: object + required: [kind, projectId, repository, commit, path] + properties: + kind: + const: treedx + projectId: + $ref: "#/$defs/Identifier" + repository: + type: string + minLength: 1 + commit: + $ref: "#/$defs/GitCommit" + path: + type: string + minLength: 1 + workspaceId: + $ref: "#/$defs/Identifier" + additionalProperties: false + + UrlReference: + type: object + required: [kind, url] + properties: + kind: + const: url + url: + type: string + format: uri + digest: + $ref: "#/$defs/Sha256Digest" + additionalProperties: false + + AssignmentReference: + oneOf: + - $ref: "#/$defs/GitReference" + - $ref: "#/$defs/TreeDxReference" + - $ref: "#/$defs/UrlReference" + + Estimate: + # minimum <= expected <= maximum is also enforced by semantic validation. + type: object + required: [minimumSeconds, expectedSeconds, maximumSeconds] + properties: + minimumSeconds: + $ref: "#/$defs/PositiveSeconds" + expectedSeconds: + $ref: "#/$defs/PositiveSeconds" + maximumSeconds: + $ref: "#/$defs/PositiveSeconds" + rationale: + type: string + additionalProperties: false + + DependencySelectors: + # Human-authored standing dependencies never contain generated IDs. + type: object + minProperties: 1 + properties: + agents: + type: array + uniqueItems: true + items: + $ref: "#/$defs/AgentClass" + events: + type: array + uniqueItems: true + items: + enum: [workday-closing] + additionalProperties: false + + ContentPermissions: + type: object + required: [read, write] + properties: + read: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ContentModel" + write: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ContentModel" + additionalProperties: false + + PermissionSet: + # In a profile this is a ceiling; in a work item it is requested authority. + type: object + required: [content, tools] + properties: + content: + $ref: "#/$defs/ContentPermissions" + tools: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ToolGroup" + additionalProperties: false + + ExactGrant: + # Assignment-time authority uses concrete refs and paths, not broad model groups. + type: object + required: [contentRead, contentWrite, sourceRead, sourceWrite, tools] + properties: + contentRead: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + contentWrite: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + sourceRead: + type: array + uniqueItems: true + items: + type: string + minLength: 1 + sourceWrite: + type: array + uniqueItems: true + items: + type: string + minLength: 1 + tools: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ToolGroup" + additionalProperties: false + + Prompt: + type: object + required: [system] + properties: + system: + type: string + minLength: 20 + instructions: + type: array + items: + $ref: "#/$defs/NonEmptyText" + additionalProperties: false + + ActivityProfile: + type: object + required: [handler, permissions, prompt] + properties: + handler: + $ref: "#/$defs/Identifier" + dependsOn: + $ref: "#/$defs/DependencySelectors" + permissions: + $ref: "#/$defs/PermissionSet" + prompt: + $ref: "#/$defs/Prompt" + additionalContext: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + parameters: + # Handler-specific values are allowed only here and remain ordinary data. + type: object + additionalProperties: true + additionalProperties: false + + ActivityProfiles: + type: object + minProperties: 1 + properties: + planning: + $ref: "#/$defs/ActivityProfile" + estimating: + $ref: "#/$defs/ActivityProfile" + acting: + $ref: "#/$defs/ActivityProfile" + reviewing: + $ref: "#/$defs/ActivityProfile" + reporting: + $ref: "#/$defs/ActivityProfile" + chat: + $ref: "#/$defs/ActivityProfile" + additionalProperties: false + + WorkItem: + # Stable proposal-owned unit. Generated Reviewer nodes are not authored here. + type: object + required: + - id + - activity + - agentClass + - workspace + - review + - objective + - estimate + - dependsOn + - requestedPermissions + - acceptanceCriteria + properties: + id: + $ref: "#/$defs/Slug" + activity: + enum: [acting] + agentClass: + $ref: "#/$defs/AgentClass" + workspace: + $ref: "#/$defs/WorkspaceMode" + review: + enum: [required, none] + objective: + $ref: "#/$defs/NonEmptyText" + estimate: + $ref: "#/$defs/Estimate" + reviewEstimate: + $ref: "#/$defs/Estimate" + maximumReviewCycles: + type: integer + minimum: 1 + dependsOn: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Slug" + requestedPermissions: + $ref: "#/$defs/PermissionSet" + requiredCapabilities: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + contextRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + acceptanceCriteria: + type: array + minItems: 1 + items: + $ref: "#/$defs/NonEmptyText" + allOf: + - if: + type: object + properties: + review: + const: required + required: [review] + then: + type: object + required: [reviewEstimate, maximumReviewCycles] + - if: + type: object + properties: + review: + const: none + required: [review] + then: + type: object + not: + type: object + anyOf: + - type: object + required: [reviewEstimate] + - type: object + required: [maximumReviewCycles] + additionalProperties: false + + ExecutionPlan: + type: object + required: [workItems] + properties: + workItems: + type: array + minItems: 1 + items: + $ref: "#/$defs/WorkItem" + additionalProperties: false + + # --------------------------------------------------------------------------- + # Governed TreeDX content + # --------------------------------------------------------------------------- + + AgentProfile: + # Storage: TreeDX. Owner: SDK contract; authored as governed project content. + type: object + required: + - schemaVersion + - id + - name + - agentClass + - purpose + - responsibilities + - capabilities + - context + - activityProfiles + properties: + schemaVersion: + const: treeseed.agent/v1 + id: + $ref: "#/$defs/Identifier" + name: + $ref: "#/$defs/NonEmptyText" + agentClass: + $ref: "#/$defs/AgentClass" + purpose: + $ref: "#/$defs/NonEmptyText" + responsibilities: + type: array + minItems: 1 + items: + $ref: "#/$defs/NonEmptyText" + capabilities: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + context: + type: object + required: [include] + properties: + include: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + additionalProperties: false + activityProfiles: + $ref: "#/$defs/ActivityProfiles" + allOf: + # Reviewing is reserved for Reviewer by default. A future policy exception + # must change this canonical contract rather than bypass validation. + - if: + type: object + properties: + agentClass: + not: + const: reviewer + required: [agentClass] + then: + type: object + properties: + activityProfiles: + not: + type: object + required: [reviewing] + additionalProperties: false + + Book: + # Architecture is represented by a conventional " Architecture" book. + type: object + required: [schemaVersion, id, projectId, title, summary] + properties: + schemaVersion: + const: treeseed.book/v2 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + title: + $ref: "#/$defs/NonEmptyText" + summary: + $ref: "#/$defs/NonEmptyText" + pageRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + additionalProperties: false + + Knowledge: + # Validated page content within a book, including architecture knowledge. + type: object + required: [schemaVersion, id, projectId, bookRef, title, body] + properties: + schemaVersion: + const: treeseed.knowledge-page/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + bookRef: + $ref: "#/$defs/ExactEntityReference" + title: + $ref: "#/$defs/NonEmptyText" + body: + $ref: "#/$defs/NonEmptyText" + relatedRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + additionalProperties: false + + Objective: + # Durable outcome sought by a team or project; proposals may cite it. + type: object + required: [schemaVersion, id, projectId, title, outcome, status] + properties: + schemaVersion: + const: treeseed.objective/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + title: + $ref: "#/$defs/NonEmptyText" + outcome: + $ref: "#/$defs/NonEmptyText" + status: + enum: [active, achieved, abandoned] + evidenceRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + additionalProperties: false + + Discussion: + # Thread metadata only; messages are independently revisioned content. + type: object + required: [schemaVersion, id, projectId, subjectRef, status, participantClasses] + properties: + schemaVersion: + const: treeseed.discussion/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + subjectRef: + $ref: "#/$defs/ExactEntityReference" + status: + enum: [open, resolved, closed] + participantClasses: + type: array + uniqueItems: true + items: + $ref: "#/$defs/AgentClass" + additionalProperties: false + + DiscussionMessage: + type: object + required: [schemaVersion, id, discussionRef, authorRef, body, createdAt] + properties: + schemaVersion: + const: treeseed.discussion-message/v1 + id: + $ref: "#/$defs/Identifier" + discussionRef: + $ref: "#/$defs/ExactEntityReference" + authorRef: + $ref: "#/$defs/ExactEntityReference" + body: + $ref: "#/$defs/NonEmptyText" + replyToRef: + $ref: "#/$defs/ExactEntityReference" + createdAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + Proposal: + # The executable plan and accepted estimates live directly on this content. + type: object + required: + - schemaVersion + - id + - projectId + - title + - request + - status + properties: + schemaVersion: + const: treeseed.proposal/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + title: + $ref: "#/$defs/NonEmptyText" + request: + $ref: "#/$defs/NonEmptyText" + summary: + $ref: "#/$defs/NonEmptyText" + status: + enum: [draft, discussing, ready, decided, withdrawn] + objectiveRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + evidenceRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + discussionRef: + $ref: "#/$defs/ExactEntityReference" + executionPlan: + $ref: "#/$defs/ExecutionPlan" + allOf: + - if: + type: object + properties: + status: + enum: [ready, decided] + required: [status] + then: + type: object + required: [summary, executionPlan] + additionalProperties: false + + Question: + # Open questions become graph conditions until answered or withdrawn. + type: object + required: [schemaVersion, id, projectId, subjectRef, question, status, askedAt] + properties: + schemaVersion: + const: treeseed.question/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + subjectRef: + $ref: "#/$defs/ExactEntityReference" + question: + $ref: "#/$defs/NonEmptyText" + status: + enum: [open, answered, withdrawn] + addressedTo: + type: array + uniqueItems: true + items: + $ref: "#/$defs/AgentClass" + answer: + type: string + minLength: 1 + answerRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + askedAt: + $ref: "#/$defs/Timestamp" + answeredAt: + $ref: "#/$defs/Timestamp" + allOf: + - if: + type: object + properties: + status: + const: answered + required: [status] + then: + type: object + anyOf: + - type: object + required: [answer] + - type: object + required: [answerRefs] + additionalProperties: false + + Note: + # Review findings and workday reports are classifications of this core model. + type: object + required: [schemaVersion, id, projectId, classification, subjectRefs, body, createdAt] + properties: + schemaVersion: + const: treeseed.note/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + classification: + enum: [general, feedback, research, workday-report] + subjectRefs: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + body: + $ref: "#/$defs/NonEmptyText" + createdAt: + $ref: "#/$defs/Timestamp" + allOf: + # A workday report must cite its exact PostgreSQL workday record. Its other + # subject refs cite results, usage, releases, and publications summarized. + - if: + type: object + properties: + classification: + const: workday-report + required: [classification] + then: + type: object + properties: + subjectRefs: + type: array + contains: + type: object + required: [store, model] + properties: + store: + const: postgresql + model: + const: workday + additionalProperties: false + + Decision: + # Class selects governance; subjectRef binds disposition to exact evidence. + type: object + required: + - schemaVersion + - id + - projectId + - decisionClass + - decisionMethod + - subjectRef + - disposition + - rationale + - authorityRefs + - decidedByRefs + - decidedAt + properties: + schemaVersion: + const: treeseed.decision/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + decisionClass: + $ref: "#/$defs/DecisionClass" + decisionMethod: + # Classes define semantics; method records how authority was exercised. + enum: [authority, approval, vote] + subjectRef: + $ref: "#/$defs/ExactEntityReference" + disposition: + $ref: "#/$defs/DecisionDisposition" + rationale: + $ref: "#/$defs/NonEmptyText" + findingRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + authorityRefs: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + decidedByRefs: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + positions: + type: array + minItems: 1 + items: + $ref: "#/$defs/DecisionPosition" + decidedAt: + $ref: "#/$defs/Timestamp" + allOf: + - if: + type: object + properties: + decisionMethod: + enum: [approval, vote] + required: [decisionMethod] + then: + type: object + required: [positions] + - if: + type: object + properties: + decisionClass: + const: work-review + required: [decisionClass] + then: + type: object + properties: + disposition: + enum: [approved, request-changes] + - if: + type: object + properties: + decisionClass: + const: proposal + required: [decisionClass] + then: + type: object + properties: + disposition: + enum: [approved, rejected, deferred, superseded] + - if: + type: object + properties: + decisionClass: + const: publication + required: [decisionClass] + then: + type: object + properties: + disposition: + enum: [approved, rejected, deferred, superseded] + additionalProperties: false + + # --------------------------------------------------------------------------- + # TreeDX service custody records + # --------------------------------------------------------------------------- + + TreeDxWorkspace: + # Storage: TreeDX service metadata. A governed mutable content workspace. + type: object + required: + - schemaVersion + - id + - teamId + - projectId + - repository + - baseCommit + - headCommit + - assignmentId + - status + - createdAt + properties: + schemaVersion: + const: treeseed.treedx-workspace/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + repository: + type: string + minLength: 1 + baseCommit: + $ref: "#/$defs/GitCommit" + headCommit: + $ref: "#/$defs/GitCommit" + assignmentId: + $ref: "#/$defs/Identifier" + status: + enum: [open, submitted, accepted, rejected, abandoned] + createdAt: + $ref: "#/$defs/Timestamp" + submittedAt: + $ref: "#/$defs/Timestamp" + closedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + TreeDxWorkspaceReview: + # Records governance over an exact TreeDX candidate; not a content model. + type: object + required: + - schemaVersion + - id + - workspaceId + - candidateCommit + - decisionRef + - status + - decidedAt + properties: + schemaVersion: + const: treeseed.treedx-workspace-review/v1 + id: + $ref: "#/$defs/Identifier" + workspaceId: + $ref: "#/$defs/Identifier" + candidateCommit: + $ref: "#/$defs/GitCommit" + decisionRef: + $ref: "#/$defs/ExactEntityReference" + status: + enum: [approved, request-changes] + decidedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + TreeDxPublicationReceipt: + # Exact read-back evidence after an approved publication operation. + type: object + required: + - schemaVersion + - id + - projectId + - repository + - sourceCommit + - publishedCommit + - destination + - decisionRef + - publishedAt + properties: + schemaVersion: + const: treeseed.treedx-publication-receipt/v1 + id: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + repository: + type: string + minLength: 1 + sourceCommit: + $ref: "#/$defs/GitCommit" + publishedCommit: + $ref: "#/$defs/GitCommit" + destination: + type: string + minLength: 1 + url: + type: string + format: uri + decisionRef: + $ref: "#/$defs/ExactEntityReference" + publishedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + # --------------------------------------------------------------------------- + # Shared operational value objects + # --------------------------------------------------------------------------- + + RepositoryBinding: + type: object + required: [repository, defaultBranch] + properties: + repository: + type: string + minLength: 1 + defaultBranch: + type: string + minLength: 1 + additionalProperties: false + + TreeDxBinding: + type: object + required: [repository, collection, protectedRef] + properties: + repository: + type: string + minLength: 1 + collection: + type: string + minLength: 1 + protectedRef: + type: string + minLength: 1 + additionalProperties: false + + WeightMap: + type: object + minProperties: 1 + additionalProperties: + type: integer + minimum: 1 + + ProjectWeight: + type: object + required: [projectId, weight] + properties: + projectId: + $ref: "#/$defs/Identifier" + weight: + type: integer + minimum: 1 + additionalProperties: false + + AgentClassWeight: + type: object + required: [agentClass, weight] + properties: + agentClass: + $ref: "#/$defs/AgentClass" + weight: + type: integer + minimum: 1 + additionalProperties: false + + WorkdayPolicyFields: + # Embedded in Workday as a snapshot so later policy edits cannot alter history. + type: object + required: + - durationSeconds + - maximumConcurrency + - planningSecondsPerAgent + - communicationConcurrency + - projectWeights + - agentClassWeights + properties: + durationSeconds: + $ref: "#/$defs/PositiveSeconds" + maximumConcurrency: + type: integer + minimum: 1 + planningSecondsPerAgent: + $ref: "#/$defs/PositiveSeconds" + communicationConcurrency: + type: integer + minimum: 1 + projectWeights: + type: object + minProperties: 1 + additionalProperties: + type: number + exclusiveMinimum: 0 + agentClassWeights: + type: object + minProperties: 1 + additionalProperties: + type: number + exclusiveMinimum: 0 + additionalProperties: false + + AvailabilityWindow: + type: object + required: [startsAt, endsAt] + properties: + startsAt: + $ref: "#/$defs/Timestamp" + endsAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + NativeLimit: + # Provider-specific finite limits stay supply facts, not scheduling policy. + type: object + required: [name, unit, maximum] + properties: + name: + $ref: "#/$defs/Identifier" + unit: + $ref: "#/$defs/Identifier" + maximum: + type: number + exclusiveMinimum: 0 + additionalProperties: false + + PlanningRound: + type: object + required: [round, state, assignmentIds] + properties: + round: + enum: [1, 2] + state: + enum: [pending, active, complete] + assignmentIds: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + startedAt: + $ref: "#/$defs/Timestamp" + completedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + GraphChangeSet: + # Compact audit summary; node and edge tables remain the state authority. + type: object + required: [added, changed, completed, blocked, stale, removedEdges, addedEdges] + properties: + added: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + changed: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + completed: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + blocked: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + stale: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + addedEdges: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + removedEdges: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + additionalProperties: false + + ReadOnlyWorkspace: + type: object + required: [mode] + properties: + mode: + const: read-only + additionalProperties: false + + TreeDxAssignmentWorkspace: + type: object + required: [mode, workspaceId, repository, baseCommit, writablePaths] + properties: + mode: + const: treedx + workspaceId: + $ref: "#/$defs/Identifier" + repository: + type: string + minLength: 1 + baseCommit: + $ref: "#/$defs/GitCommit" + writablePaths: + type: array + minItems: 1 + uniqueItems: true + items: + type: string + minLength: 1 + additionalProperties: false + + GitAssignmentWorkspace: + type: object + required: [mode, repository, baseCommit, branch, writablePaths] + properties: + mode: + const: git + repository: + type: string + minLength: 1 + baseCommit: + $ref: "#/$defs/GitCommit" + branch: + type: string + minLength: 1 + writablePaths: + type: array + minItems: 1 + uniqueItems: true + items: + type: string + minLength: 1 + additionalProperties: false + + AssignmentWorkspace: + oneOf: + - $ref: "#/$defs/ReadOnlyWorkspace" + - $ref: "#/$defs/TreeDxAssignmentWorkspace" + - $ref: "#/$defs/GitAssignmentWorkspace" + + AssignmentLimits: + type: object + required: [maximumSeconds, maximumContextBytes, maximumContextItems] + properties: + maximumSeconds: + $ref: "#/$defs/PositiveSeconds" + maximumContextBytes: + type: integer + minimum: 1 + maximumContextTokens: + type: integer + minimum: 1 + maximumContextItems: + type: integer + minimum: 1 + additionalProperties: false + + VerificationRecord: + type: object + required: [command, status, exitCode, outputDigest] + properties: + command: + $ref: "#/$defs/NonEmptyText" + status: + enum: [passed, failed, skipped] + exitCode: + type: integer + outputDigest: + $ref: "#/$defs/Sha256Digest" + durationSeconds: + $ref: "#/$defs/NonNegativeSeconds" + additionalProperties: false + + Usage: + # Attempt-local observed usage. Settlement is a separate exactly-once record. + type: object + required: [elapsedSeconds] + properties: + elapsedSeconds: + $ref: "#/$defs/NonNegativeSeconds" + modelInputTokens: + type: integer + minimum: 0 + modelOutputTokens: + type: integer + minimum: 0 + native: + type: object + additionalProperties: + type: number + minimum: 0 + additionalProperties: false + + Diagnostic: + type: object + required: [code, severity, message] + properties: + code: + $ref: "#/$defs/Identifier" + severity: + enum: [info, warning, error] + message: + $ref: "#/$defs/NonEmptyText" + ref: + $ref: "#/$defs/ExactEntityReference" + additionalProperties: false + + # --------------------------------------------------------------------------- + # PostgreSQL portfolio, provider, and workday records + # --------------------------------------------------------------------------- + + Team: + # Storage: PostgreSQL. Portfolio-level scheduling and isolation boundary. + type: object + required: [schemaVersion, id, slug, name, active] + properties: + schemaVersion: + const: treeseed.team/v1 + id: + $ref: "#/$defs/Identifier" + slug: + $ref: "#/$defs/Slug" + name: + $ref: "#/$defs/NonEmptyText" + active: + type: boolean + additionalProperties: false + + Project: + # Connects portfolio identity to exact Git and TreeDX custody boundaries. + type: object + required: [schemaVersion, id, teamId, slug, name, source, treeDx, active] + properties: + schemaVersion: + const: treeseed.project/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + slug: + $ref: "#/$defs/Slug" + name: + $ref: "#/$defs/NonEmptyText" + source: + $ref: "#/$defs/RepositoryBinding" + treeDx: + $ref: "#/$defs/TreeDxBinding" + active: + type: boolean + additionalProperties: false + + AgentRegistration: + # A team/project can schedule only an active, exact governed profile revision. + type: object + required: + - schemaVersion + - id + - teamId + - projectIds + - agentClass + - profileRef + - active + properties: + schemaVersion: + const: treeseed.agent-registration/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + projectIds: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + agentClass: + $ref: "#/$defs/AgentClass" + profileRef: + $ref: "#/$defs/ExactEntityReference" + active: + type: boolean + additionalProperties: false + + WorkdayPolicy: + # Small durable policy. No allocation tiers, reserve pools, or borrow rules. + type: object + required: [schemaVersion, id, teamId, revision, policy, active] + properties: + schemaVersion: + const: treeseed.workday-policy/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + revision: + type: integer + minimum: 1 + policy: + $ref: "#/$defs/WorkdayPolicyFields" + active: + type: boolean + additionalProperties: false + + ProviderOffer: + # Versioned supply contract; providers describe runtime, not agent behavior. + type: object + required: + - schemaVersion + - id + - providerId + - revision + - runtimeBuild + - capabilities + - toolGroups + - maximumConcurrency + - availability + - nativeLimits + - validFrom + properties: + schemaVersion: + const: treeseed.provider-offer/v1 + id: + $ref: "#/$defs/Identifier" + providerId: + $ref: "#/$defs/Identifier" + revision: + type: integer + minimum: 1 + runtimeBuild: + $ref: "#/$defs/Sha256Digest" + capabilities: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + toolGroups: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ToolGroup" + maximumConcurrency: + type: integer + minimum: 1 + availability: + type: array + minItems: 1 + items: + $ref: "#/$defs/AvailabilityWindow" + nativeLimits: + type: array + items: + $ref: "#/$defs/NativeLimit" + validFrom: + $ref: "#/$defs/Timestamp" + validUntil: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + ProviderState: + # Mutable observed supply state, separate from the versioned offer. + type: object + required: + - schemaVersion + - providerId + - offerId + - healthy + - activeAssignmentIds + - observedNativeUsage + - observedAt + properties: + schemaVersion: + const: treeseed.provider-state/v1 + providerId: + $ref: "#/$defs/Identifier" + offerId: + $ref: "#/$defs/Identifier" + healthy: + type: boolean + activeAssignmentIds: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + observedNativeUsage: + type: object + additionalProperties: + type: number + minimum: 0 + observedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + Workday: + # Applied plan plus lifecycle; it is not a frozen work graph. + type: object + required: + - schemaVersion + - id + - teamId + - policyId + - policyRevision + - policySnapshot + - state + - startsAt + - endsAt + - planningRounds + - admittedSecondsByProject + - admittedSecondsByAgentClass + properties: + schemaVersion: + const: treeseed.workday/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + policyId: + $ref: "#/$defs/Identifier" + policyRevision: + type: integer + minimum: 1 + policySnapshot: + $ref: "#/$defs/WorkdayPolicyFields" + state: + enum: [planned, active, closing, ended] + startsAt: + $ref: "#/$defs/Timestamp" + endsAt: + $ref: "#/$defs/Timestamp" + planningRounds: + type: array + minItems: 2 + maxItems: 2 + items: + $ref: "#/$defs/PlanningRound" + admittedSecondsByProject: + type: object + additionalProperties: + $ref: "#/$defs/NonNegativeSeconds" + admittedSecondsByAgentClass: + type: object + additionalProperties: + $ref: "#/$defs/NonNegativeSeconds" + activatedAt: + $ref: "#/$defs/Timestamp" + closingAt: + $ref: "#/$defs/Timestamp" + endedAt: + $ref: "#/$defs/Timestamp" + reportRef: + $ref: "#/$defs/ExactEntityReference" + additionalProperties: false + + # --------------------------------------------------------------------------- + # PostgreSQL living graph, assignments, and accounting + # --------------------------------------------------------------------------- + + ConditionDefinition: + # Conditions are deterministic projections of governed or lifecycle state. + type: object + required: [conditionType, subjectRef, expectedState] + properties: + conditionType: + enum: [question, external, authority, lifecycle] + subjectRef: + $ref: "#/$defs/ExactEntityReference" + expectedState: + $ref: "#/$defs/Identifier" + additionalProperties: false + + GraphRevision: + # Append-only revision, reconciliation receipt, audit summary, and watch cursor. + type: object + required: + - schemaVersion + - teamId + - revision + - ruleRevision + - changedSourceRefs + - graphDigest + - changes + - createdAt + properties: + schemaVersion: + const: treeseed.graph-revision/v1 + teamId: + $ref: "#/$defs/Identifier" + revision: + type: integer + minimum: 1 + ruleRevision: + type: integer + minimum: 1 + changedSourceRefs: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + graphDigest: + $ref: "#/$defs/Sha256Digest" + changes: + $ref: "#/$defs/GraphChangeSet" + createdAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + ExecutionNode: + # Edges, active assignment IDs, and derived explanations are not duplicated here. + type: object + required: + - schemaVersion + - id + - teamId + - projectId + - kind + - pairRole + - sourceRef + - ruleRevision + - nodeRevision + - status + - graphRevisionCreated + - graphRevisionUpdated + properties: + schemaVersion: + const: treeseed.execution-node/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + workdayId: + $ref: "#/$defs/Identifier" + workItemId: + $ref: "#/$defs/Slug" + kind: + $ref: "#/$defs/ExecutionKind" + pairRole: + type: [string, "null"] + enum: [actor, reviewer, null] + sourceRef: + $ref: "#/$defs/ExactEntityReference" + authorityRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + ruleRevision: + type: integer + minimum: 1 + nodeRevision: + type: integer + minimum: 1 + agentClass: + $ref: "#/$defs/AgentClass" + status: + enum: [proposed, blocked, ready, assigned, running, completed, failed, cancelled, stale] + estimate: + $ref: "#/$defs/Estimate" + requiredCapabilities: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + requestedPermissions: + $ref: "#/$defs/PermissionSet" + workspace: + $ref: "#/$defs/WorkspaceMode" + acceptanceCriteria: + type: array + minItems: 1 + items: + $ref: "#/$defs/NonEmptyText" + maximumReviewCycles: + type: integer + minimum: 1 + condition: + $ref: "#/$defs/ConditionDefinition" + graphRevisionCreated: + type: integer + minimum: 1 + graphRevisionUpdated: + type: integer + minimum: 1 + allOf: + - if: + type: object + properties: + kind: + const: condition + required: [kind] + then: + type: object + required: [condition] + not: + type: object + anyOf: + - type: object + required: [agentClass] + - type: object + required: [estimate] + - type: object + required: [requestedPermissions] + - type: object + required: [workspace] + - if: + type: object + properties: + kind: + not: + const: condition + required: [kind] + then: + type: object + required: + - agentClass + - estimate + - requiredCapabilities + - requestedPermissions + - workspace + - if: + type: object + properties: + pairRole: + enum: [actor, reviewer] + required: [pairRole] + then: + type: object + required: [workItemId, maximumReviewCycles] + additionalProperties: false + + ExecutionEdge: + # Every dependency—profile, proposal, review pair, or condition—is one edge. + type: object + required: + - schemaVersion + - id + - teamId + - fromNodeId + - toNodeId + - provenance + - graphRevisionCreated + properties: + schemaVersion: + const: treeseed.execution-edge/v1 + id: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + fromNodeId: + $ref: "#/$defs/Identifier" + toNodeId: + $ref: "#/$defs/Identifier" + provenance: + enum: [profile-agent, profile-event, work-item, review-pair, governance] + sourceRef: + $ref: "#/$defs/ExactEntityReference" + graphRevisionCreated: + type: integer + minimum: 1 + graphRevisionRemoved: + type: integer + minimum: 1 + additionalProperties: false + + ProviderOfferSelection: + type: object + required: [providerId, offerId, offerRevision, runtimeBuild] + properties: + providerId: + $ref: "#/$defs/Identifier" + offerId: + $ref: "#/$defs/Identifier" + offerRevision: + type: integer + minimum: 1 + runtimeBuild: + $ref: "#/$defs/Sha256Digest" + additionalProperties: false + + EffectiveActivityProfile: + # Frozen resolved profile—not a second editable profile authority. + type: object + required: + - profileRef + - activity + - handler + - handlerOrigin + - prompt + - permissionCeiling + properties: + profileRef: + $ref: "#/$defs/ExactEntityReference" + activity: + $ref: "#/$defs/ActivityName" + handler: + $ref: "#/$defs/Identifier" + handlerOrigin: + enum: [agent-package, project-runtime] + prompt: + $ref: "#/$defs/Prompt" + permissionCeiling: + $ref: "#/$defs/PermissionSet" + additionalContext: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + parameters: + type: object + additionalProperties: true + additionalProperties: false + + AssignmentAttempt: + # Immutable execution snapshot. Lifecycle timestamps/status advance on this row; + # its authority, context, build, limits, and workspace never change. + type: object + required: + - schemaVersion + - id + - idempotencyKey + - teamId + - projectId + - workdayId + - nodeId + - nodeRevision + - graphRevision + - sourceRef + - authorityRefs + - effectiveProfile + - requiredCapabilities + - grant + - provider + - contextRefs + - predecessorResultIds + - workspace + - estimate + - limits + - deadline + - leaseId + - reservationId + - attempt + - status + - createdAt + properties: + schemaVersion: + const: treeseed.assignment-attempt/v1 + id: + $ref: "#/$defs/Identifier" + idempotencyKey: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + workdayId: + $ref: "#/$defs/Identifier" + nodeId: + $ref: "#/$defs/Identifier" + nodeRevision: + type: integer + minimum: 1 + graphRevision: + type: integer + minimum: 1 + sourceRef: + $ref: "#/$defs/ExactEntityReference" + authorityRefs: + type: array + minItems: 1 + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + effectiveProfile: + $ref: "#/$defs/EffectiveActivityProfile" + requiredCapabilities: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + grant: + $ref: "#/$defs/ExactGrant" + provider: + $ref: "#/$defs/ProviderOfferSelection" + contextRefs: + type: array + uniqueItems: true + items: + $ref: "#/$defs/ExactEntityReference" + predecessorResultIds: + type: array + uniqueItems: true + items: + $ref: "#/$defs/Identifier" + workspace: + $ref: "#/$defs/AssignmentWorkspace" + estimate: + $ref: "#/$defs/Estimate" + limits: + $ref: "#/$defs/AssignmentLimits" + deadline: + $ref: "#/$defs/Timestamp" + leaseId: + $ref: "#/$defs/Identifier" + reservationId: + $ref: "#/$defs/Identifier" + attempt: + type: integer + minimum: 1 + status: + enum: [created, leased, running, completed, blocked, failed, cancelled, expired] + createdAt: + $ref: "#/$defs/Timestamp" + startedAt: + $ref: "#/$defs/Timestamp" + finishedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + AuthorizedContextItem: + # Runtime envelope. The referenced record is validated by its own model before + # materialization; value is intentionally opaque to this transport wrapper. + type: object + required: [ref, mediaType, digest, value] + properties: + ref: + $ref: "#/$defs/ExactEntityReference" + mediaType: + type: string + minLength: 1 + digest: + $ref: "#/$defs/Sha256Digest" + value: true + additionalProperties: false + + AssignmentContext: + # API/provider-to-AgentKernel DTO. It reuses the immutable assignment instead + # of restating identity, authority, workspace, prompt, limits, or deadline. + type: object + required: [assignment, context, predecessorResults] + properties: + assignment: + $ref: "#/$defs/AssignmentAttempt" + context: + type: array + items: + $ref: "#/$defs/AuthorizedContextItem" + predecessorResults: + type: array + items: + $ref: "#/$defs/AssignmentResult" + additionalProperties: false + + Lease: + # Exclusive, renewable claim over one assignment attempt. + type: object + required: + - schemaVersion + - id + - assignmentId + - providerId + - state + - acquiredAt + - expiresAt + - revision + properties: + schemaVersion: + const: treeseed.lease/v1 + id: + $ref: "#/$defs/Identifier" + assignmentId: + $ref: "#/$defs/Identifier" + providerId: + $ref: "#/$defs/Identifier" + state: + enum: [active, released, expired, revoked] + acquiredAt: + $ref: "#/$defs/Timestamp" + expiresAt: + $ref: "#/$defs/Timestamp" + releasedAt: + $ref: "#/$defs/Timestamp" + revision: + type: integer + minimum: 1 + additionalProperties: false + + Reservation: + # Capacity reservation for exactly one attempt and its accepted estimate. + type: object + required: + - schemaVersion + - id + - assignmentId + - workdayId + - providerId + - estimatedSeconds + - state + - reservedAt + properties: + schemaVersion: + const: treeseed.reservation/v1 + id: + $ref: "#/$defs/Identifier" + assignmentId: + $ref: "#/$defs/Identifier" + workdayId: + $ref: "#/$defs/Identifier" + providerId: + $ref: "#/$defs/Identifier" + estimatedSeconds: + $ref: "#/$defs/PositiveSeconds" + state: + enum: [held, consumed, released, expired] + reservedAt: + $ref: "#/$defs/Timestamp" + closedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + AssignmentResult: + # One result for every Handler. References carry products and handoffs. + type: object + required: + - schemaVersion + - id + - assignmentId + - status + - summary + - references + - verification + - usage + - diagnostics + - completedAt + properties: + schemaVersion: + const: treeseed.assignment-result/v1 + id: + $ref: "#/$defs/Identifier" + assignmentId: + $ref: "#/$defs/Identifier" + status: + enum: [completed, blocked, failed] + summary: + $ref: "#/$defs/NonEmptyText" + references: + type: array + uniqueItems: true + items: + $ref: "#/$defs/AssignmentReference" + verification: + type: array + items: + $ref: "#/$defs/VerificationRecord" + usage: + $ref: "#/$defs/Usage" + diagnostics: + type: array + items: + $ref: "#/$defs/Diagnostic" + completedAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false + + UsageSettlement: + # Exactly-once accounting. Fairness uses actualSeconds; native usage remains + # distinct because providers expose different units and limits. + type: object + required: + - schemaVersion + - id + - idempotencyKey + - assignmentId + - reservationId + - workdayId + - teamId + - projectId + - agentClass + - providerId + - actualSeconds + - nativeUsage + - settledAt + properties: + schemaVersion: + const: treeseed.usage-settlement/v1 + id: + $ref: "#/$defs/Identifier" + idempotencyKey: + $ref: "#/$defs/Identifier" + assignmentId: + $ref: "#/$defs/Identifier" + reservationId: + $ref: "#/$defs/Identifier" + workdayId: + $ref: "#/$defs/Identifier" + teamId: + $ref: "#/$defs/Identifier" + projectId: + $ref: "#/$defs/Identifier" + agentClass: + $ref: "#/$defs/AgentClass" + providerId: + $ref: "#/$defs/Identifier" + actualSeconds: + $ref: "#/$defs/NonNegativeSeconds" + nativeUsage: + type: object + additionalProperties: + type: number + minimum: 0 + cost: + type: number + minimum: 0 + currency: + type: string + pattern: "^[A-Z]{3}$" + settledAt: + $ref: "#/$defs/Timestamp" + additionalProperties: false From 475c785c194b100fcd8283172d01bee1e762a805 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 14 Sep 2026 18:59:00 -0400 Subject: [PATCH 330/501] docs: record accepted golden agent path --- AGENTS.md | 6 ++++ docs/agent-architecture.md | 27 ++++++++++++------ docs/agent-assignments.md | 56 ++++++++++++++++++++++++++------------ 3 files changed, 63 insertions(+), 26 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index ba41b6a1..5ee82bd2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,6 +2,12 @@ This is the public TreeSeed installer and integration workspace. Preserve independent package builds and route infrastructure changes through SDK reconciliation and `trsd`. Market and Market API are first-party portfolio projects governed through the same seed, reconciliation, and exact-ref custody model as the other TreeSeed repositories. Their hosted deployment remains fail-closed until the reviewed OpenTofu topology restores it. +## CRITICAL: simplicity and non-duplication are mandatory + +Always choose the simplest complete solution. Avoid new models, schemas, storage, services, abstractions, adapters, artifacts, workflows, configuration fields, and compatibility paths unless they are strictly necessary to produce a verified requirement. One fact must have one authority, one representation, and one implementation path. Reuse existing contracts, Git state, TreeDX content, receipts, commands, and runtime boundaries instead of copying or translating them. Do not encode the same policy in profiles, prompts, handlers, assignments, providers, and API services. Delete superseded paths as part of the replacement; do not preserve speculative flexibility or backward compatibility. Before adding any concept, identify why the current simplest mechanism cannot satisfy the requirement. If that necessity cannot be demonstrated, do not add it. + +Optimize first for the smallest end-to-end path that works and can be verified through the supported CLI. Prefer ordinary commits, branches, exact refs, typed assignment inputs/results, and small class-based handlers over new artifact taxonomies or orchestration layers. Do not create work whose only purpose is to reconcile duplication introduced by the design itself. Complexity and duplicated effort are critical defects, not acceptable tradeoffs. + ## First-party repository visibility and licensing All TreeSeed repositories are public, including Team Library and Market API. First-party repositories use Apache-2.0 except API and Market API, which use AGPLv3. Preserve their exact license notices. This policy does not relicense third-party dependencies or make customer repositories public. The TreeSeed seed must declare public repository visibility; license choice is independent of visibility. diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index d271ded4..c059f57a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -44,6 +44,14 @@ Checkboxes report implementation status only: - `[x]` implemented and verified - `BLOCKED:` requires an active entry under **Observations and blockers** +## Local Development Loop + +Persistent development mode is the only implementation loop before coordinated acceptance. A changed package rebuilds with its actual dependents, becomes active only after compilation and readiness succeed, and leaves the previous known-good process serving on failure. Assignment diagnostics expose the exact SDK, API, Agent, Deployment, guest image, provider offer, source authority, workspace, grant, sandbox lifecycle, result, settlement, and successor outcome from existing records rather than creating another tracking system. + +The golden proposal and agent-assisted workflow are owned by [`docs/agent-assignments.md`](./agent-assignments.md). Architecture work must move that same live path forward; component tests alone do not prove an activity profile. Publish one coordinated RC set only after local end-to-end acceptance. + +Once that receipt exists, use the SDK agent team on real bounded development and clone it to eligible projects only through the native plan/apply operation defined by the assignments plan. Unrelated defects are recorded in the owning GitHub issue and deferred unless they prevent the active assignment frontier. + ## Decisions - The Agent package owns AgentKernel and the reusable default handlers. @@ -413,7 +421,7 @@ Acceptance: - [x] Implement the single AgentKernel entry point and build-time handler registry. - [x] Route the existing isolated provider transport through AgentKernel. -- [ ] Compile exact grants within the activity ceiling and team/project policy; block admission when required authority is unavailable. +- [x] Compile exact grants within the activity ceiling and team/project policy; block admission when required authority is unavailable. - [x] Enforce immutable assignment grants at runtime-service calls and validate the one result contract. - [x] Implement deterministic `ReporterHandler` with no model dependency. - [x] Commit the report through TreeDX and return its ordinary exact reference. @@ -444,8 +452,8 @@ Acceptance: - [ ] Every enabled activity resolves exactly one handler from its pinned runtime build. - [ ] Default handlers are reused across agent classes. - [ ] Project prompt/context customization requires no handler copy. -- [ ] One reviewed acting work item automatically dispatches Actor then Reviewer assignments without either profile naming the generated node. -- [ ] Request changes returns exact findings to a new actor attempt against the same objective and then dispatches the next Reviewer attempt. +- [x] One reviewed acting work item automatically dispatches Actor then Reviewer assignments without either profile naming the generated node. +- [x] Request changes returns exact findings to a new actor attempt against the same objective and then dispatches the next Reviewer attempt. - [ ] One project-owned behavior override passes a real CLI assignment. ### Phase 4 — Workday planning and fair capacity @@ -469,13 +477,13 @@ Acceptance: ### Phase 5 — Integration, clean cutover, and managed acceptance -- [ ] Consume ready nodes and predecessor results only through the contracts owned by `docs/agent-assignments.md`. -- [ ] Use one assignment-selected `read-only`, `treedx`, or `git` workspace mode and permit reads from exact refs in either custody system. +- [x] Consume ready nodes and predecessor results only through the contracts owned by `docs/agent-assignments.md`. +- [x] Use one assignment-selected `read-only`, `treedx`, or `git` workspace mode and permit reads from exact refs in either custody system. - [ ] Split required Git and TreeDX mutations into dependent assignments; add no dual-write workspace. - [ ] Create explicit integration assignments whenever several Git predecessors must be combined. - [ ] Delete AgentKernelProfile/Policy, metadata-only handler routing, dynamic module/process loading, duplicate authority presets/raw tools/branch policies/context, old allocation hierarchy, fixed team polling, and alternate provider execution paths. - [ ] Remove every compatibility field, parser, alias, route, table, fixture, test, document, and feature switch associated with the retired architecture. -- [ ] Run architecture-specific CLI acceptance, then reference the assignment plan's graph acceptance receipt rather than repeating it. +- [x] Run architecture-specific CLI acceptance, then reference the assignment plan's graph acceptance receipt rather than repeating it. - [ ] Publish and read back one coordinated compatible release set. Architecture CLI surface: @@ -519,20 +527,21 @@ Stop and record a blocker if exact authority, isolation, project access, provide | 2026-09-14 | One build-time handler registry and AgentKernel execute the isolated provider transport | Focused Agent kernel/provider suites; source-backed Kata acceptance retained in Issue #520 | | 2026-09-14 | Deterministic Reporter commits through TreeDX and settles through the ordinary completion path | Focused Agent/API tests; live Reporter receipt retained in Issue #520 | | 2026-09-14 | Persistent development selections run the touched SDK, API, Agent, and TreeDX components | Managed development status read-back; no RC required | +| 2026-09-14 | The SDK golden path exercised Architect, Tester, Engineer, and Reviewer through isolated Kata guests, exact grants, read-only/TreeDX/Git workspaces, revision, teardown, and terminal approval | Cross-reference the decision, workday, and assignment receipts in `docs/agent-assignments.md` and Issue #520 | ## Observations and Blockers ### Current integrated state -- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Reporter closeout and source-backed Kata execution are proven; assignment-graph evidence remains owned by `docs/agent-assignments.md`. +- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. The SDK golden receipt proves exact workspace selection, request-changes continuity, and teardown; graph details remain owned by `docs/agent-assignments.md`. ### Current active blocker -- No external blocker is active. The architecture remains incomplete until the generated Git Actor and Reviewer cycle proves exact workspace enforcement and one AgentKernel completion path end to end. +- No active blocker exists for the accepted SDK golden proposal path. ### Next acceptance milestone -- Complete the proposal-to-approval frontier defined in `docs/agent-assignments.md`, then use that receipt as the architecture acceptance reference before expanding the activity-profile matrix. +- Clone the accepted SDK agent team through the native plan/apply operation defined in `docs/agent-assignments.md`, then expand acceptance across eligible projects and the remaining activity profiles. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 53d7e3d6..e6d72737 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -37,6 +37,28 @@ Checkboxes report implementation status only: - `[x]` implemented and verified - `BLOCKED:` requires an active entry under **Observations and blockers** +## Golden Development Acceptance + +Development advances one ordinary accepted proposal through the real local system before broader scenarios or releases: + +```text +accepted proposal + ↓ +Architect result → Reviewer approval + ↓ +Tester evidence → Reviewer approval + ↓ +Engineer candidate → request changes → same Engineer revision + ↓ +same Reviewer re-review → approval → terminal reconciliation +``` + +This is the primary acceptance test. Every defect found on this path receives one focused regression test in the owning package, a local development rebuild, and an immediate replay of the same frontier. Do not cut an RC, broaden diagnostics, or pursue an unrelated defect before the path passes; record non-blocking discoveries in Platform Issue #520 or a bounded owner-repository issue. + +Use the agents themselves as soon as a node is runnable. Read-only discussion work may diagnose the current boundary; Tester produces executable evidence; Engineer receives exact approved predecessor results; Reviewer evaluates exact immutable candidates. Productive agent work and system acceptance are the same workflow, not separate exercises. + +After this golden path passes, the tested SDK agent team becomes the development baseline. A single SDK/API/CLI plan/apply operation must clone that team into selected projects or every eligible team project, adapt only project identity and exact content bindings, and return `noop` when repeated. Do not copy files manually, duplicate agent policy in Platform, or broaden the activity matrix before the golden receipt exists. + ## Decisions - TreeDX is the durable authority for proposals, questions, answers, decisions, reviews, reports, and other planning content. @@ -325,7 +347,7 @@ Acceptance: - [x] Store nodes, edges, assignments, and graph revisions once each; remove duplicated node JSON fields. - [ ] Resolve activity-profile agent selectors and lifecycle selectors into concrete edges. - [ ] Apply dependencies only to the declaring activity; exclude chat from implicit workflow dependencies. -- [ ] Expand every `review: required` acting work item into stable actor and Reviewer nodes under the same work-item identity. +- [x] Expand every `review: required` acting work item into stable actor and Reviewer nodes under the same work-item identity. - [x] Project proposal governance review through the same Reviewer `reviewing` profile without creating an acting pair. - [ ] Project lifecycle events as condition nodes, including `workday-closing`. - [ ] Union profile and work-item edges with deterministic provenance and cycle validation. @@ -338,44 +360,44 @@ Acceptance: - [ ] Proposal review gates decision and every required Actor → Reviewer pair gates downstream work-item readiness. - [ ] Releaser waits for approved Engineer and Technical Writer work-item pairs and every other applicable required review. - [x] `workday-closing` → Reporter materializes as an ordinary condition dependency. -- [ ] Replaying identical inputs produces no changes, duplicate nodes, or duplicate edges. +- [x] Replaying identical inputs produces no changes, duplicate nodes, or duplicate edges. ### Phase 3 — Direct assignment lifecycle - [x] Treat every ready assignable node as demand for the allocator defined in `docs/agent-architecture.md`. - [ ] Claim a node and create its immutable assignment, lease, reservation, and idempotency receipt transactionally. - [x] Compile required capabilities during reconciliation and compare them directly with provider offers during admission. -- [ ] Validate requested content/tool authority against the activity profile ceiling and team/project policy; freeze the exact grant on the assignment. -- [ ] Select the accepted work item's `read-only`, `treedx`, or `git` workspace and permit exact read context from either custody system. +- [x] Validate requested content/tool authority against the activity profile ceiling and team/project policy; freeze the exact grant on the assignment. +- [x] Select the accepted work item's `read-only`, `treedx`, or `git` workspace and permit exact read context from either custody system. - [ ] Enforce one mutable workspace per assignment and reject dual Git/TreeDX mutation work items. - [ ] Preserve running assignments when the graph changes; cancel or supersede only through explicit lifecycle rules. -- [ ] Advance node revision for retry or replacement so a new assignment has a distinct deterministic identity. +- [x] Advance node revision for retry or replacement so a new assignment has a distinct deterministic identity. - [ ] Remove decision execution inputs, capacity-plan work units, workday demand rows, and alternate assignment-synthesis paths. Acceptance: -- [ ] One CLI-visible ready node produces exactly one assignment and reservation. -- [ ] The assignment exposes its profile ceiling, exact grant, workspace mode, mutable scope, and denied or missing authority explanation. -- [ ] Replay produces no duplicate assignment or charge. +- [x] One CLI-visible ready node produces exactly one assignment and reservation. +- [x] The assignment exposes its profile ceiling, exact grant, workspace mode, mutable scope, and denied or missing authority explanation. +- [x] Replay produces no duplicate assignment or charge. - [ ] Ineligible providers and blocked dependencies have exact explanations. ### Phase 4 — Results, review, revision, and multiple projects - [x] Accept only the one general result contract and ordinary Git, TreeDX, or URL references. -- [ ] Complete an actor attempt on candidate return while keeping its work item incomplete until the paired review is approved. -- [ ] Pass predecessor results into dependent assignment context. +- [x] Complete an actor attempt on candidate return while keeping its work item incomplete until the paired review is approved. +- [x] Pass predecessor results into dependent assignment context. - [x] Record review findings as notes/questions and formal disposition as a decision bound to the exact candidate. -- [ ] Advance the same actor/reviewer node pair on request changes; create no unrelated revision work item. +- [x] Advance the same actor/reviewer node pair on request changes; create no unrelated revision work item. - [ ] Enforce bounded review cycles and block for a new decision when exhausted. - [ ] Support one team graph spanning multiple projects and decisions. - [ ] Preserve project-scoped content and repository authority across cross-project scheduling. - [ ] Fail closed when a cross-project dependency lacks an explicit TreeDX relation and read grant. -- [ ] Admit newly ready work during the current active workday. +- [x] Admit newly ready work during the current active workday. Acceptance: - [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. -- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. +- [x] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. - [ ] Two projects progress in one team graph without copying project graphs or leaking context. ### Phase 5 — Clean cutover and managed CLI acceptance @@ -427,21 +449,21 @@ This plan adds only assignment-specific responsibilities to the ownership table |---|---|---| | 2026-09-14 | Draft proposal intake, exact proposal revision/digest binding, and proposal-governance review use the living graph contracts | Focused SDK/API proposal and projection suites; current development read-back | | 2026-09-14 | Ready-node admission compiles provider capability demand and closing Reporter dependency from the same graph | Focused API admission/projector suites; Reporter settlement receipt retained in Issue #520 | -| 2026-09-14 | The complete generated Actor → Reviewer request-changes cycle is not yet accepted | This remains the sole end-to-end frontier below | +| 2026-09-14 | The SDK golden proposal completed Architect and Tester review, then the same Engineer and Reviewer nodes advanced through request changes to approval without duplicate node revisions | Decision `d0def93c-29de-4096-909e-a7cc44c5858f`; workday `workday-7f49152f-ae12-48bc-9531-dd13f9d6245a`; eight completed assignment receipts retained in Issue #520 | ## Observations and Blockers ### Current integrated state -- The canonical proposal-review path runs through the living graph, provider admission, Kata isolation, AgentKernel, the Reviewer handler, one general result contract, TreeDX disposition, cleanup, and settlement. Focused SDK, API, and Agent suites pass against the current development sources; detailed defect evidence is maintained in Platform Issue #520. +- The SDK golden proposal runs through one content-derived graph, provider admission, isolated Kata guests, exact grants, all three workspace modes, AgentKernel, TreeDX review decisions, revision-preserving Git candidates, verified teardown, and one result/settlement path. The graph contains six stable nodes and eight unique completed node-revision assignments. ### Current active blocker -- No external blocker is active. The unproven boundary is the complete generated work-review cycle; prior proposal-review and isolated profile evidence do not prove it. +- No active blocker exists for the accepted SDK golden proposal path. ### Next acceptance milestone -- Accept one exact proposal, generate its Git Actor and Reviewer nodes, obtain request changes, revise the same work item, re-review the replacement candidate, approve it, and prove terminal reconciliation without duplicate assignments or settlements. +- Implement and verify the native plan/apply operation that clones the accepted SDK agent team into eligible projects, then use those agents for the remaining activity and multi-project acceptance. ## Completion From 0c1dc69aecc37982c0cdb68c7beb26c65348d423 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 14 Sep 2026 21:19:09 -0400 Subject: [PATCH 331/501] docs: record agent timing and clone acceptance --- docs/agent-architecture.md | 5 +++-- docs/agent-assignments.md | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index c059f57a..927f3144 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -432,6 +432,7 @@ Acceptance: - [x] One real closing Reporter assignment executes API → provider → AgentKernel → Reporter → result → settlement through the CLI. - [x] Identical authorized inputs produce identical report bytes. - [ ] Unknown handler, wrong build, expired assignment, denied service, invalid result, cancellation, and timeout fail closed. +- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Communication is proven; the remaining activity profiles still require integrated graph evidence. ### Phase 3 — Reusable and project-owned handlers @@ -533,7 +534,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. The SDK golden receipt proves exact workspace selection, request-changes continuity, and teardown; graph details remain owned by `docs/agent-assignments.md`. +- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. A real source-backed communication assignment proved two model-initiated authoritative time checks and bounded completion; graph and team-clone details remain owned by `docs/agent-assignments.md`. ### Current active blocker @@ -541,7 +542,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Next acceptance milestone -- Clone the accepted SDK agent team through the native plan/apply operation defined in `docs/agent-assignments.md`, then expand acceptance across eligible projects and the remaining activity profiles. +- Exercise the cloned project agents across the remaining activity profiles through the real graph, including the time-awareness requirement above. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index e6d72737..8eac321b 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -455,7 +455,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The SDK golden proposal runs through one content-derived graph, provider admission, isolated Kata guests, exact grants, all three workspace modes, AgentKernel, TreeDX review decisions, revision-preserving Git candidates, verified teardown, and one result/settlement path. The graph contains six stable nodes and eight unique completed node-revision assignments. +- The SDK golden proposal runs through one content-derived graph, provider admission, isolated Kata guests, exact grants, all three workspace modes, AgentKernel, TreeDX review decisions, revision-preserving Git candidates, verified teardown, and one result/settlement path. The native team-clone operation projected the eight accepted SDK agents into all 17 eligible project libraries and repeated with `noop`. ### Current active blocker @@ -463,7 +463,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Next acceptance milestone -- Implement and verify the native plan/apply operation that clones the accepted SDK agent team into eligible projects, then use those agents for the remaining activity and multi-project acceptance. +- Use the cloned agents for remaining activity-profile and multi-project graph acceptance without creating another assignment path. ## Completion From 8842a57c88034e06252e50a8fe7ff3b216ffe4aa Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 14 Sep 2026 22:15:36 -0400 Subject: [PATCH 332/501] Record graph and timing acceptance frontier --- docs/agent-architecture.md | 6 ++++-- docs/agent-assignments.md | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 927f3144..15fbc593 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -64,6 +64,7 @@ Once that receipt exists, use the SDK agent team on real bounded development and - Every activity profile declares a simple deny-by-default content and tool permission ceiling. The profile is not a runtime grant. - The API creates exact assignment grants within the profile ceiling and team/project policy. AgentKernel enforces that immutable grant at every runtime service. - Handlers share one assignment context and one result contract. Do not create schemas for every handler or work product. +- Every model-backed assignment receives one API-authoritative productive window. Its prompt states the total budget, the runtime exposes the live remaining time, and successful completion requires model-initiated checks near execution start and immediately before finalization. - AgentKernel has one public assignment entry point. Providers do not dispatch behavior by prompt or activity. - Assignments, not profiles or agents, select and own their one mutable workspace and any Git branch. - Workdays guarantee self-directed and collaborative planning before proposal-driven work can consume the remaining capacity. @@ -432,7 +433,7 @@ Acceptance: - [x] One real closing Reporter assignment executes API → provider → AgentKernel → Reporter → result → settlement through the CLI. - [x] Identical authorized inputs produce identical report bytes. - [ ] Unknown handler, wrong build, expired assignment, denied service, invalid result, cancellation, and timeout fail closed. -- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Communication is proven; the remaining activity profiles still require integrated graph evidence. +- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Communication is proven with enforced provider evidence; each remaining activity profile still requires the same integrated graph proof. ### Phase 3 — Reusable and project-owned handlers @@ -529,12 +530,13 @@ Stop and record a blocker if exact authority, isolation, project access, provide | 2026-09-14 | Deterministic Reporter commits through TreeDX and settles through the ordinary completion path | Focused Agent/API tests; live Reporter receipt retained in Issue #520 | | 2026-09-14 | Persistent development selections run the touched SDK, API, Agent, and TreeDX components | Managed development status read-back; no RC required | | 2026-09-14 | The SDK golden path exercised Architect, Tester, Engineer, and Reviewer through isolated Kata guests, exact grants, read-only/TreeDX/Git workspaces, revision, teardown, and terminal approval | Cross-reference the decision, workday, and assignment receipts in `docs/agent-assignments.md` and Issue #520 | +| 2026-09-14 | Model timing awareness is an enforced provider boundary: the prompt states the productive budget, the guest exposes the authoritative clock, and completion requires two successful model-initiated checks | Agent focused timing/provider tests; live SDK Architect assignment `assignment_bjg8VtklDe9HjHp7FdcMh4oLwkO81DkS` completed a 180-second source inspection after two checks | ## Observations and Blockers ### Current integrated state -- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. A real source-backed communication assignment proved two model-initiated authoritative time checks and bounded completion; graph and team-clone details remain owned by `docs/agent-assignments.md`. +- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Timing awareness is prompt-visible, tool-checkable, provider-enforced, and retained as sanitized execution evidence; graph and team-clone details remain owned by `docs/agent-assignments.md`. ### Current active blocker diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 8eac321b..6e6b009e 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -450,12 +450,13 @@ This plan adds only assignment-specific responsibilities to the ownership table | 2026-09-14 | Draft proposal intake, exact proposal revision/digest binding, and proposal-governance review use the living graph contracts | Focused SDK/API proposal and projection suites; current development read-back | | 2026-09-14 | Ready-node admission compiles provider capability demand and closing Reporter dependency from the same graph | Focused API admission/projector suites; Reporter settlement receipt retained in Issue #520 | | 2026-09-14 | The SDK golden proposal completed Architect and Tester review, then the same Engineer and Reviewer nodes advanced through request changes to approval without duplicate node revisions | Decision `d0def93c-29de-4096-909e-a7cc44c5858f`; workday `workday-7f49152f-ae12-48bc-9531-dd13f9d6245a`; eight completed assignment receipts retained in Issue #520 | +| 2026-09-14 | Real planning and estimating workdays projected standing dependencies, executed two rounds through ordinary graph nodes, and closed through Reporter | Workdays `workday-0f15032a-3c4a-4409-8708-a88f2ee343c9` and `workday-4388ebd1-57b5-4da3-8eb8-ac80a1d5d4e1`; detailed receipts retained in Issue #520 | ## Observations and Blockers ### Current integrated state -- The SDK golden proposal runs through one content-derived graph, provider admission, isolated Kata guests, exact grants, all three workspace modes, AgentKernel, TreeDX review decisions, revision-preserving Git candidates, verified teardown, and one result/settlement path. The native team-clone operation projected the eight accepted SDK agents into all 17 eligible project libraries and repeated with `noop`. +- The SDK golden proposal and real planning/estimating workdays run through one content-derived graph and assignment path. Standing dependencies controlled readiness across two rounds, Reporter closed each completed workday, and native team cloning projected eight SDK agents into all 17 eligible project libraries with a `noop` replay. ### Current active blocker From c5a7ccb695da474ecd9fc69cbc59523b0fdf30d8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 02:08:28 -0400 Subject: [PATCH 333/501] docs: record golden agent graph acceptance --- docs/agent-architecture.md | 23 ++++++++++++----------- docs/agent-assignments.md | 13 +++++++------ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 15fbc593..55861927 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -2,7 +2,7 @@ **Status:** in progress **Plan created:** 2026-09-12 -**Last architecture review:** 2026-09-13 +**Last architecture review:** 2026-09-15 **Scope:** agent profiles, handlers, AgentKernel, assignment workspaces, workday planning, capacity allocation, and provider selection **Related plan:** [`docs/agent-assignments.md`](./agent-assignments.md) owns proposal planning, decisions, living-graph projection, assignments, results, review, and reconciliation **Explicit non-goal:** UI implementation @@ -433,7 +433,7 @@ Acceptance: - [x] One real closing Reporter assignment executes API → provider → AgentKernel → Reporter → result → settlement through the CLI. - [x] Identical authorized inputs produce identical report bytes. - [ ] Unknown handler, wrong build, expired assignment, denied service, invalid result, cancellation, and timeout fail closed. -- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Communication is proven with enforced provider evidence; each remaining activity profile still requires the same integrated graph proof. +- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Chat, planning, estimating, Architect acting, Tester acting, Engineer acting, and Reviewer reviewing are proven; Releaser, Researcher, and Technical Writer acting remain. ### Phase 3 — Reusable and project-owned handlers @@ -460,19 +460,19 @@ Acceptance: ### Phase 4 — Workday planning and fair capacity -- [ ] Implement `workday plan` and `workday start` with one shared compiler. -- [ ] Guarantee every eligible agent self-directed planning time and two planning rounds. +- [x] Implement `workday plan` and `workday start` with one shared compiler. +- [x] Guarantee every eligible agent self-directed planning time and two planning rounds. - [ ] Admit ready graph nodes directly; create no capacity-plan or demand records. - [ ] Implement project and agent-class weighted fairness with stable ties and automatic idle-share flow. - [ ] Implement provider-global team fairness and hard provider-native gates. -- [ ] Implement active → closing → ended lifecycle and derive closeout capacity from required closeout estimates. +- [x] Implement active → closing → ended lifecycle and derive closeout capacity from required closeout estimates. - [ ] Keep communication concurrency independent from ordinary work. - [ ] Settle every attempt exactly once and expose allocation explanations through the CLI. Acceptance: -- [ ] A zero-proposal workday gives every participating agent planning work and can create new proposals. -- [ ] Second-round assignments can use accepted first-round contributions. +- [x] A zero-proposal workday gives every participating agent planning work and can create new proposals. +- [x] Second-round assignments can use accepted first-round contributions. - [ ] Mid-workday content changes add eligible work without restarting the workday. - [ ] Multi-project, multi-class, multi-team, retries, failures, idle share, and stable ties pass deterministic tests. - [x] Reporter runs during closing and the workday ends only after report completion and settlement. @@ -529,14 +529,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide | 2026-09-14 | One build-time handler registry and AgentKernel execute the isolated provider transport | Focused Agent kernel/provider suites; source-backed Kata acceptance retained in Issue #520 | | 2026-09-14 | Deterministic Reporter commits through TreeDX and settles through the ordinary completion path | Focused Agent/API tests; live Reporter receipt retained in Issue #520 | | 2026-09-14 | Persistent development selections run the touched SDK, API, Agent, and TreeDX components | Managed development status read-back; no RC required | -| 2026-09-14 | The SDK golden path exercised Architect, Tester, Engineer, and Reviewer through isolated Kata guests, exact grants, read-only/TreeDX/Git workspaces, revision, teardown, and terminal approval | Cross-reference the decision, workday, and assignment receipts in `docs/agent-assignments.md` and Issue #520 | -| 2026-09-14 | Model timing awareness is an enforced provider boundary: the prompt states the productive budget, the guest exposes the authoritative clock, and completion requires two successful model-initiated checks | Agent focused timing/provider tests; live SDK Architect assignment `assignment_bjg8VtklDe9HjHp7FdcMh4oLwkO81DkS` completed a 180-second source inspection after two checks | +| 2026-09-15 | The SDK golden path exercised Architect, Tester, Engineer, Reviewer, and Reporter through isolated Kata guests, exact grants, read-only/TreeDX/Git workspaces, request-changes revision, teardown, terminal approval, and closeout | Cross-reference workday `workday-4521844e-4d95-467d-94fa-18c11fabb4a3` and final decision `c14d7d852a4199067dc5b2350fa0d9461d793a21` in `docs/agent-assignments.md` and Issue #520 | +| 2026-09-15 | Model timing awareness is an enforced provider boundary: the prompt states the productive budget, the first tool call and pre-finalization call query the authoritative clock, and completion with fewer than two successful model-initiated checks is rejected | Agent timing/provider tests and the golden workday above; the final Reviewer recorded 113 seconds near start and 78 seconds before closeout | +| 2026-09-14 | Shared workday plan/start, two planning rounds, predecessor-result context, active/closing/ended lifecycle, and deterministic Reporter passed for every SDK agent planning or estimating profile | Workday `workday-37d55a3f-9fa3-4680-bb84-da80109b093a`; 14 model assignments stored 2/2 timing evidence and round 2 received all seven round-1 results | ## Observations and Blockers ### Current integrated state -- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Timing awareness is prompt-visible, tool-checkable, provider-enforced, and retained as sanitized execution evidence; graph and team-clone details remain owned by `docs/agent-assignments.md`. +- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Chat, planning, estimating, Architect, Tester, Engineer, and Reviewer model work have passed the mandatory two-check assignment-clock contract; graph and team-clone details remain owned by `docs/agent-assignments.md`. ### Current active blocker @@ -544,7 +545,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Next acceptance milestone -- Exercise the cloned project agents across the remaining activity profiles through the real graph, including the time-awareness requirement above. +- Complete Releaser, Researcher, and Technical Writer acting plus project-owned-handler acceptance through the real graph under the same assignment-clock gate. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6e6b009e..35eaa321 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -2,7 +2,7 @@ **Status:** in progress **Plan created:** 2026-09-12 -**Last architecture review:** 2026-09-13 +**Last architecture review:** 2026-09-15 **Scope:** proposal planning, decisions, living execution graph, assignments, results, review, and graph reconciliation **Related plan:** [`docs/agent-architecture.md`](./agent-architecture.md) owns profiles, handlers, AgentKernel, workspaces, workday allocation, and provider selection **Explicit non-goal:** UI implementation @@ -345,7 +345,7 @@ Acceptance: - [x] Add monotonic team graph revisions and deterministic projection from test TreeDX fixtures. - [x] Make projection replay order-independent and idempotent. - [x] Store nodes, edges, assignments, and graph revisions once each; remove duplicated node JSON fields. -- [ ] Resolve activity-profile agent selectors and lifecycle selectors into concrete edges. +- [x] Resolve activity-profile agent selectors and lifecycle selectors into concrete edges. - [ ] Apply dependencies only to the declaring activity; exclude chat from implicit workflow dependencies. - [x] Expand every `review: required` acting work item into stable actor and Reviewer nodes under the same work-item identity. - [x] Project proposal governance review through the same Reviewer `reviewing` profile without creating an acting pair. @@ -396,7 +396,7 @@ Acceptance: Acceptance: -- [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. +- [x] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. - [x] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. - [ ] Two projects progress in one team graph without copying project graphs or leaking context. @@ -449,14 +449,15 @@ This plan adds only assignment-specific responsibilities to the ownership table |---|---|---| | 2026-09-14 | Draft proposal intake, exact proposal revision/digest binding, and proposal-governance review use the living graph contracts | Focused SDK/API proposal and projection suites; current development read-back | | 2026-09-14 | Ready-node admission compiles provider capability demand and closing Reporter dependency from the same graph | Focused API admission/projector suites; Reporter settlement receipt retained in Issue #520 | -| 2026-09-14 | The SDK golden proposal completed Architect and Tester review, then the same Engineer and Reviewer nodes advanced through request changes to approval without duplicate node revisions | Decision `d0def93c-29de-4096-909e-a7cc44c5858f`; workday `workday-7f49152f-ae12-48bc-9531-dd13f9d6245a`; eight completed assignment receipts retained in Issue #520 | +| 2026-09-15 | The SDK golden proposal completed Architect and Tester review, then the same Engineer and Reviewer nodes advanced through request changes to approval without duplicate node revisions; every model-backed attempt completed two authoritative clock checks | Decision `ce5c641e-afa1-49cb-bd16-4c8f4ba815bb`; workday `workday-4521844e-4d95-467d-94fa-18c11fabb4a3`; final review decision `c14d7d852a4199067dc5b2350fa0d9461d793a21`; detailed receipts retained in Issue #520 | | 2026-09-14 | Real planning and estimating workdays projected standing dependencies, executed two rounds through ordinary graph nodes, and closed through Reporter | Workdays `workday-0f15032a-3c4a-4409-8708-a88f2ee343c9` and `workday-4388ebd1-57b5-4da3-8eb8-ac80a1d5d4e1`; detailed receipts retained in Issue #520 | +| 2026-09-14 | Every SDK planning/estimating profile completed a two-round targeted workday; round 2 received the exact seven round-1 general results before Reporter closeout | Workday `workday-37d55a3f-9fa3-4680-bb84-da80109b093a`; assignment/result details retained in Issue #520 | ## Observations and Blockers ### Current integrated state -- The SDK golden proposal and real planning/estimating workdays run through one content-derived graph and assignment path. Standing dependencies controlled readiness across two rounds, Reporter closed each completed workday, and native team cloning projected eight SDK agents into all 17 eligible project libraries with a `noop` replay. +- The SDK golden proposal now completes proposal acceptance, Architect and Tester work with review, Engineer request-changes revision, Reviewer approval, Reporter closeout, and terminal reconciliation through one content-derived graph; no node revision produced more than one assignment. ### Current active blocker @@ -464,7 +465,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Next acceptance milestone -- Use the cloned agents for remaining activity-profile and multi-project graph acceptance without creating another assignment path. +- Prove the remaining multi-project graph, bounded review-cycle exhaustion, and clean-cutover checkboxes without creating another assignment path. ## Completion From de6a00005f90b88a88125465bbaa3bfc184d8c39 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 09:58:58 -0400 Subject: [PATCH 334/501] docs: require identity in integrated platform profiles --- config/initialization/control-plane.json | 2 +- config/initialization/core.json | 2 +- config/initialization/treeai.json | 2 +- docs/agent-architecture.md | 4 ++-- profiles/control-plane.yaml | 4 ++-- profiles/treeai.yaml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/initialization/control-plane.json b/config/initialization/control-plane.json index 6b8972a3..b8eb38fa 100644 --- a/config/initialization/control-plane.json +++ b/config/initialization/control-plane.json @@ -3,7 +3,7 @@ "id": "control-plane", "role": "control-plane", "runtime": { "management": "managed", "environment": "track-default" }, - "components": ["api", "admin", "treedx", "lab"], + "components": ["identity", "api", "admin", "treedx", "lab"], "security": { "requirement": "optional" }, "inputs": [] } diff --git a/config/initialization/core.json b/config/initialization/core.json index 47d0ea54..e675942a 100644 --- a/config/initialization/core.json +++ b/config/initialization/core.json @@ -3,7 +3,7 @@ "id": "core", "role": "integrated", "runtime": { "management": "managed", "environment": "track-default" }, - "components": ["api", "admin", "agent", "treedx", "lab"], + "components": ["identity", "api", "admin", "agent", "treedx", "lab"], "security": { "requirement": "required" }, "inputs": [] } diff --git a/config/initialization/treeai.json b/config/initialization/treeai.json index 57553d0d..09bebfe6 100644 --- a/config/initialization/treeai.json +++ b/config/initialization/treeai.json @@ -3,7 +3,7 @@ "id": "treeai", "role": "integrated", "runtime": { "management": "managed", "environment": "track-default" }, - "components": ["api", "admin", "agent", "treedx", "lab", "ai-inference", "ai-training", "ai-lab"], + "components": ["identity", "api", "admin", "agent", "treedx", "lab", "ai-inference", "ai-training", "ai-lab"], "security": { "requirement": "required" }, "inputs": [] } diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 55861927..87c35314 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -64,7 +64,7 @@ Once that receipt exists, use the SDK agent team on real bounded development and - Every activity profile declares a simple deny-by-default content and tool permission ceiling. The profile is not a runtime grant. - The API creates exact assignment grants within the profile ceiling and team/project policy. AgentKernel enforces that immutable grant at every runtime service. - Handlers share one assignment context and one result contract. Do not create schemas for every handler or work product. -- Every model-backed assignment receives one API-authoritative productive window. Its prompt states the total budget, the runtime exposes the live remaining time, and successful completion requires model-initiated checks near execution start and immediately before finalization. +- Every model-backed assignment receives one API-authoritative productive window. Its prompt states the total budget, its first execution action must query the live remaining time, and its final tool action before the response must query it again. The provider rejects completion retryably unless both boundary checks are proven, and agents must use each reading to reduce scope, reserve verification time, and finish within the window. - AgentKernel has one public assignment entry point. Providers do not dispatch behavior by prompt or activity. - Assignments, not profiles or agents, select and own their one mutable workspace and any Git branch. - Workdays guarantee self-directed and collaborative planning before proposal-driven work can consume the remaining capacity. @@ -433,7 +433,7 @@ Acceptance: - [x] One real closing Reporter assignment executes API → provider → AgentKernel → Reporter → result → settlement through the CLI. - [x] Identical authorized inputs produce identical report bytes. - [ ] Unknown handler, wrong build, expired assignment, denied service, invalid result, cancellation, and timeout fail closed. -- [ ] Every model-backed activity receives its authoritative productive window, completes two live time-status checks, and scopes its work to finish within that window. Chat, planning, estimating, Architect acting, Tester acting, Engineer acting, and Reviewer reviewing are proven; Releaser, Researcher, and Technical Writer acting remain. +- [ ] Every model-backed activity receives its authoritative productive window, uses the clock as its first execution and final tool actions, and scopes its work to finish within that window. Chat, planning, estimating, Architect acting, Tester acting, Engineer acting, and Reviewer reviewing are proven; Releaser, Researcher, and Technical Writer acting remain to be proven against the strengthened boundary-order gate. ### Phase 3 — Reusable and project-owned handlers diff --git a/profiles/control-plane.yaml b/profiles/control-plane.yaml index 656d46da..4322a4e9 100644 --- a/profiles/control-plane.yaml +++ b/profiles/control-plane.yaml @@ -1,6 +1,6 @@ schemaVersion: treeseed.platform-profile/v1 id: control-plane extends: [] -sources: { projects: [sdk, cli, ui, core, admin, api, reviewer, treedx, deployment] } +sources: { projects: [sdk, cli, ui, core, identity, admin, api, reviewer, treedx, deployment] } runtime: - targets: [control-plane.api, control-plane.postgres, control-plane.operations, control-plane.admin, control-plane.treedx, development.lab] + targets: [control-plane.identity, control-plane.api, control-plane.postgres, control-plane.operations, control-plane.admin, control-plane.treedx, development.lab] diff --git a/profiles/treeai.yaml b/profiles/treeai.yaml index 46588520..99f005d8 100644 --- a/profiles/treeai.yaml +++ b/profiles/treeai.yaml @@ -1,7 +1,7 @@ schemaVersion: treeseed.platform-profile/v1 id: treeai extends: [] -sources: { projects: [sdk, cli, api, admin, agent, reviewer, treedx, deployment] } +sources: { projects: [sdk, cli, identity, api, admin, agent, reviewer, treedx, deployment] } runtime: targets: [treeai.inference, treeai.training, treeai.lab] defaultEnabled: false From 0491f4ae4fb8715561d237c0e72e7a1cd992a631 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 10:15:54 -0400 Subject: [PATCH 335/501] docs: define golden agent execution acceptance --- docs/agent-acceptance.md | 739 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 739 insertions(+) create mode 100644 docs/agent-acceptance.md diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md new file mode 100644 index 00000000..69e2d531 --- /dev/null +++ b/docs/agent-acceptance.md @@ -0,0 +1,739 @@ +# Agent execution acceptance + +**Status:** proposed acceptance authority +**Scope:** proposal governance, activity profiles, living execution graph, workdays, capacity allocation, isolated workspaces, review, simulated release, reporting, and portfolio coordination +**Contract:** [`docs/agent.schema.yml`](./agent.schema.yml) +**Architecture:** [`docs/agent-assignments.md`](./agent-assignments.md) and [`docs/agent-architecture.md`](./agent-architecture.md) + +## Purpose + +This document fixes the golden proposals and the evidence required to call the agent system accepted. The implementation agent must not invent easier proposals, substitute fixture-only work, skip agent classes, treat a terminal workday as proof, or change a proposal after a failed run merely to make the run pass. + +Each software, service, product, platform, template, or skill project in the TreeSeed seed has one project-relevant golden proposal. Team Library is excluded because it is the shared content project rather than an engineering project. The resulting acceptance portfolio contains these 17 projects: + +1. SDK +2. API +3. Agent +4. TreeDX +5. CLI +6. Deployment +7. Identity +8. UI +9. Core +10. Admin +11. Reviewer +12. Engineering Template +13. Research Template +14. Market +15. Market API +16. Skill +17. Platform + +The first two proposals are SDK and API because they exercise the portable contract and its authoritative control-plane implementation. They must pass independently, then together in one workday, before the remaining projects proceed. + +## Non-negotiable rules + +- Every acceptance workday has the one authoritative `executionMode: simulation`. Assignments execute under that workday mode; graph, result, settlement, and CLI views derive it rather than owning independent mode values. A contradictory derived label is a failed run. +- Simulation may read and modify any file in a disposable repository workspace, run builds and tests, combine candidates, create local commits and tags, and exercise release logic. +- Simulation must not push to an upstream source or library repository, create or update a remote pull request or issue, publish a package or release, deploy, rotate credentials, mutate live data, or call another externally mutating service. +- Upstream Git remotes are read-only. No upstream write credential may enter an assignment. Local simulation repositories are the only push targets. +- TreeDX authoring uses campaign-local repositories or refs with upstream synchronization disabled. Proposal, discussion, note, question, decision, knowledge, and report commits remain locally auditable but are not published upstream. +- Source candidates remain ordinary Git commits. Content products remain ordinary TreeDX commits. Do not add a source-candidate model, acceptance-artifact taxonomy, or secondary status system. +- PostgreSQL remains authoritative for workdays, graph revisions, nodes, edges, attempts, leases, reservations, results, and settlements. +- Every model-backed assignment makes an authoritative clock call as its first execution action and another as its final tool action. Both readings and their timestamps are retained. +- The deterministic Reporter uses the same assignment, result, reservation, settlement, and teardown path, but does not call a model. +- A workday reaching `ended` or an assignment reaching `completed` is necessary but never sufficient. Acceptance is determined only by the evidence checks in this document. +- No legacy field, record, route, or compatibility translation may be used to make a golden run pass. + +### Required contract correction + +The current `Workday` definition in `docs/agent.schema.yml` has no execution-mode field, while existing runtime records have already demonstrated contradictory workday and assignment labels. Before Stage 0 can pass, add one required `Workday.executionMode` with supported values `simulation` and `production`. It is the sole mode authority. The immutable assignment identifies its workday and receives the exact grants, remotes, workspace, and provider instructions compiled for that mode; it does not own another independently mutable mode field. + +For `simulation`, grant compilation must remove every upstream or external mutation capability and replace writable Git destinations with the local simulation repository. For `production`, ordinary governed authority applies. Do not add compatibility aliases, separate run mode, assignment mode, provider mode, or result mode. + +## Simulation custody and repeatability + +### Campaign freeze + +Before the first run, create one acceptance campaign record outside the product object model as an operator-owned test manifest. It records only reproducibility inputs: + +- campaign ID; +- seed name, version, and digest; +- exact protected `staging` commit for every primary and library repository; +- exact SDK, API, Agent, Deployment, TreeDX, CLI, guest-image, and provider runtime build digests; +- exact governed agent-profile refs; +- exact workday-policy revision; +- provider offer revision; +- the proposal IDs and exact draft and ready proposal bytes defined here. + +The campaign manifest is test configuration, not a new control-plane resource. Once frozen, subject repository bases and both expected proposal revisions do not change during retries. Runtime-under-test builds may change as defects are repaired; every run records their new exact digests. + +### Local Git custody + +For each project and run, the provider creates a disposable checkout from the campaign's exact upstream base and a local bare simulation repository: + +```text +upstream (read-only exact base) + -> disposable assignment branch/worktree + -> local simulation bare repository + -> reviewed local integration commit/tag +``` + +Candidate branches use `simulation///`. The Releaser may integrate and tag only in the local simulation repository. The control plane catalogs the exact repository identity, commit, branch or tag, verification, and producing result. Simulation refs are retained until the campaign is accepted or explicitly discarded. + +Before and after every run, compare upstream branch heads, tags, releases, pull requests, issues, package registries, and deployment selections. Any external mutation fails the campaign immediately. + +### Reset between retries + +A retry must begin from all of the following original inputs: + +- the same proposal identity and bytes; +- the same proposal source base and evidence refs; +- the same primary and library repository base commits; +- the same workday policy and provider offer, unless the failure specifically proves one of those implementations defective; +- no surviving candidate branch, mutable TreeDX workspace, lease, reservation, assignment eligibility, provider session, or sandbox from the prior run. + +Failed historical records remain auditable, but they cannot satisfy dependencies in the retry. The new workday receives a new ID. Deterministic source projection must reproduce the same initial graph digest. + +## The canonical proposal lifecycle + +Every project follows the same lifecycle. The project sections below supply the exact project-specific request and expected products. + +1. Submit the fixed proposal as `draft` with its objective, evidence, and six work items. +2. Open one proposal discussion addressed to Architect, Researcher, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter. +3. Run one relevant `chat` probe for all eight project agents while the discussion is open. Chat must use the communication lane, must not inherit standing work dependencies, and must not create graph edges. +4. Collect one discussion contribution from each of the eight project agents. Contributions identify risks, questions, dependencies, verification, documentation, release, and reporting concerns without changing the fixed objective. +5. Run estimating assignments for Researcher, Architect, Tester, Engineer, Technical Writer, and Releaser work plus one Reviewer assignment covering all paired-review estimates. Every estimate contains `minimumSeconds`, `expectedSeconds`, `maximumSeconds`, and a rationale, with `minimum <= expected <= maximum`. +6. Update the same proposal to the exact `ready` form. The accepted estimates are the fixed estimates in this document; agent estimates must support them or the run stops for proposal review. +7. Resolve every question or gate. The proposal-governance Reviewer binds its disposition to the exact ready proposal revision and digest. +8. Create one classed `proposal` decision accepting that exact proposal. No decision may carry a separate plan, graph, role map, source commit, or capacity plan. +9. Reconcile the accepted content into the living team execution graph. +10. Start the simulation workday. Execute two planning rounds, ready project work, generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. + +If the current implementation cannot represent this lifecycle without an alternate assignment path or duplicate plan authority, stop. Do not simplify the acceptance case to match the implementation. + +## Common activity-profile expectations + +These expectations apply to every project and are not repeated in each proposal. + +| Activity | Agents | Required exact input | Required output | +|---|---|---|---| +| `chat` | All eight agents | Addressed message, exact subject refs, profile prompt and grant | One general result or discussion message that answers only the addressed question; no graph mutation | +| `planning`, round 1 | All eight agents | Proposal, project objectives and knowledge, exact source base, own profile | Independent contribution from that agent's responsibility; questions use the core `question` model | +| `planning`, round 2 | Same eight agents | All eight exact round-1 results plus unchanged source context | A synthesis that explicitly cites consumed predecessor result IDs and identifies any changed recommendation | +| `estimating` | Six work owners plus Reviewer | Exact work item, acceptance criteria, dependencies, workspace and grants | Valid estimate triple and rationale; Reviewer estimates each generated review independently | +| `acting` | Researcher, Architect, Tester, Engineer, Technical Writer, Releaser | Immutable assignment, exact proposal/decision, predecessor results, profile, grant, base and deadline | One `AssignmentResult` with ordinary TreeDX or Git refs, verification, non-zero observed usage when time elapsed, diagnostics and two clock checks | +| `reviewing` | Reviewer only | Exact objective, acceptance criteria, candidate result/ref, verification and immutable source authority | Notes/questions as needed and one classed `work-review` decision bound to the exact candidate; Reviewer never mutates it | +| `reporting` | Reporter only | Ended planning rounds, complete graph/attempt/result/settlement records and workday-closing event | Deterministic note-based report and exact `Workday.reportRef` through the ordinary result path | + +### Expected planning contributions + +- Architect: boundaries, ownership, simplest design, affected contracts, and forbidden duplication. +- Researcher: authoritative source evidence, unresolved facts, and citations or exact repository references. +- Tester: failure model, test-first strategy, negative cases, and observable acceptance evidence. +- Engineer: smallest implementation path, likely files, integration risks, and verification commands. +- Technical Writer: affected user/operator/reference documentation and terminology drift. +- Releaser: integration order, compatibility consequences, local release simulation, and rollback/read-back checks. +- Reviewer: ambiguity, authority, security, correctness, and evidence weaknesses. +- Reporter: evidence completeness, expected workday narrative, accounting checks, and closeout omissions that must prevent acceptance. + +Round 2 must prove collaboration by consuming all eight round-1 results. Merely receiving them in context is insufficient; the result must identify the material contribution consumed from each. + +## Common proposal work-item contract + +Every golden proposal is a `treeseed.proposal/v1` object with these populated fields: + +```yaml +schemaVersion: treeseed.proposal/v1 +id: +projectId: +title: +request: +summary: +status: ready +objectiveRefs: [] +evidenceRefs: [] +discussionRef: +executionPlan: + workItems: +``` + +The shorthand in this document must be expanded into the actual schema before submission. The stored proposal may not contain shorthand, inherited defaults, YAML anchors, or references to this Markdown file as missing configuration. + +### Fixed work-item graph + +| ID | Class | Workspace | Depends on | Estimate min/expected/max | Review estimate | Review cycles | +|---|---|---|---|---:|---:|---:| +| `research-context` | Researcher | `treedx` | none | 180/360/720 | 120/240/480 | 2 | +| `architecture-contract` | Architect | `treedx` | none | 300/600/1200 | 120/240/480 | 2 | +| `tests-first` | Tester | `git` | `research-context`, `architecture-contract` | 300/600/1200 | 120/240/480 | 2 | +| `implement-change` | Engineer | `git` | `tests-first` | 600/1200/2400 | 180/360/720 | 2 | +| `document-change` | Technical Writer | `git` | `tests-first`, `implement-change` | 180/360/720 | 120/240/480 | 2 | +| `simulate-release` | Releaser | `git` | `implement-change`, `document-change` | 180/360/720 | 120/240/480 | 2 | + +Every row has `activity: acting`, `review: required`, a non-empty project-specific objective, the estimate and review estimate above, `maximumReviewCycles: 2`, exact `contextRefs`, requested permissions, required capabilities, and project-specific acceptance criteria. + +Reconciliation generates one Reviewer node for each row. Generated Reviewer nodes are not written into the proposal. A downstream work item becomes ready only after the predecessor's exact review decision is approved. + +### Fixed permissions and assignment workspaces + +- Researcher requests content read for `book`, `knowledge`, `objective`, `proposal`, `decision`, `note`, and `question`; content write for `knowledge`, `note`, and `question`; tools `discussion` and `source.read`. +- Architect requests the same reads; content write for `book`, `knowledge`, `note`, and `question`; tools `discussion` and `source.read`. +- Tester, Engineer, and Technical Writer request the same content reads, no content writes, and tools `source.read`, `source.write`, and `verification`. +- Releaser requests the same content reads, no content writes, and tools `source.read`, `source.write`, `verification`, and `release`. +- Generated Reviewer assignments receive exact candidate read authority, discussion/content decision authority, and verification tools, but no source or candidate write authority. +- Simulation Git assignments use the local simulation repository, the exact predecessor-approved base, a unique assignment branch, and `writablePaths: ['.']`. +- TreeDX assignments receive one campaign-local workspace and only their exact acceptance paths. No assignment has both a mutable Git and mutable TreeDX workspace. + +### Fixed product chain + +1. Researcher returns an exact TreeDX note or knowledge reference containing source evidence and unresolved questions. +2. Architect returns exact ` Architecture` book/knowledge refs describing the smallest design and ownership boundaries. +3. Tester returns a Git commit containing tests that fail against the frozen base for the intended reason and pass against the expected implementation. Existing unrelated failures are recorded separately. +4. Engineer starts from the approved Tester candidate, makes the implementation pass those tests, and adds no self-authored substitute tests unless the Tester explicitly requested them in its result. +5. Technical Writer starts from the approved implementation/test chain and updates the repository's actual user, operator, API, or contributor documentation. +6. Releaser combines the exact approved Git predecessors in the local simulation repository, runs the project verification and package/release dry run, and returns a local integration commit and optional local tag. It cannot push, publish, merge upstream, or deploy. +7. Reporter references every planning result, assignment result, review decision, candidate, settlement, failure, retry, and teardown result in one deterministic workday note. + +### Reporter selection + +Each workday has exactly one closeout Reporter and one `Workday.reportRef`. Individual project runs use that project's Reporter. The SDK/API joint run uses `sdk/reporter`; the all-project run uses `platform/reporter`. The applied workday plan records this selection before activation. Other participating Reporter agents still perform chat and both planning rounds, but reconciliation must not create duplicate project reports or a second summary layer. + +## Project golden proposals + +The source issue is evidence for choosing the work. The golden proposal below is the acceptance authority when an older issue mentions legacy capacity plans, compatibility, publication, or deployment behavior that conflicts with the current architecture. + +### 1. SDK — decision-governed workday intent + +- `id`: `golden-sdk-decision-governed-workday-intent` +- Source: `treeseed-ai/sdk#299` +- Title: **Select accepted decisions in portable workday intent** +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Preserve them in normalization and preflight digests. They select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. +- Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace every current SDK workday-selection, decision, graph, assignment, and legacy planning contract; return exact refs and a duplication/deletion note. | +| Architect | Extend the SDK Architecture book with the single authority boundary and exact portable shape; identify all retired competing contracts. | +| Tester | Add normalization, duplicate/empty rejection, stable digest, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | +| Engineer | Implement the minimal strict TypeScript contract and delete superseded unions, aliases, and exported paths. | +| Technical Writer | Update SDK API/reference examples to show repeated decision selection and explicitly forbid caller-authored derived state. | +| Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | + +Required acceptance: empty and duplicate IDs fail; omitted selection retains planning-only intent without a compatibility path; normalized order and digest are deterministic; generated descriptors expose the field once; no legacy execution-plan/capacity-plan input survives. + +### 2. API — content-derived acting promotion + +- `id`: `golden-api-content-derived-acting-promotion` +- Source: `treeseed-ai/api#356`, corrected to the living-graph architecture +- Title: **Project accepted decisions directly into living-graph work** +- Request: Resolve SDK-owned decision identities against current accepted proposal authority, exact project scope, estimates, source refs, profiles, and conditions; reconcile affected content directly into the living graph and admit ready nodes during an active workday. Reject caller-authored graph, assignment, source, role, execution-input, demand, or capacity-plan state, and delete the superseded promotion path. +- Summary: Prove the API turns governed content into assignments without a second plan or scheduling authority. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace proposal decision resolution, reconciliation, admission, retries, and legacy promotion/storage paths with exact refs. | +| Architect | Record the transaction and authority boundaries from accepted content through graph revision, assignment, reservation, result, and settlement. | +| Tester | Add positive, stale, wrong-team, wrong-project, unaccepted, superseded, missing-estimate/profile/source, replay, and mid-workday-admission tests. | +| Engineer | Implement direct content-derived reconciliation/admission and remove capacity-plan, execution-input, demand-row, and alternate synthesis behavior. | +| Technical Writer | Document public API behavior, failure explanations, watch/readback fields, and the absence of caller-authored internals. | +| Releaser | Run database migration from a clean pre-launch schema, API/runner builds and tests, local service smoke, replay-as-noop, and rollback simulation. | + +Required acceptance: one exact accepted proposal revision creates one deterministic connected component; replay is noop; content accepted mid-workday becomes eligible without restart; transactional claim creates one assignment/lease/reservation; each attempt settles once; no legacy records are read or written. + +### 3. Agent — fail-closed AgentKernel execution + +- `id`: `golden-agent-fail-closed-kernel-execution` +- Source: `treeseed-ai/agent#122` +- Title: **Execute every activity through one fail-closed AgentKernel** +- Request: Complete the isolated provider-to-AgentKernel path so every enabled activity selects exactly one compiled handler, enforces its immutable grant/workspace/deadline, emits one general result, records real usage, and tears down. Remove remaining provider semantic branches and prove actionable failures. +- Summary: Prove the Agent package executes profiles rather than reimplementing their workflow semantics. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Inventory runtime semantic branches, provider/Kata boundaries, sandbox lifecycle, usage sources, and known failure gaps. | +| Architect | Specify the one entry point, handler registry, runtime services, timing boundary, cancellation, teardown, and forbidden responsibilities. | +| Tester | Add fail-closed tests for unknown handler/build, denied service, invalid result, timeout, cancellation, teardown, usage, and no alternate path. | +| Engineer | Complete the minimal kernel/provider implementation and delete superseded routing and dynamic behavior. | +| Technical Writer | Update package runtime, handler-authoring, diagnostics, and local Kata guidance. | +| Releaser | Build provider and guest locally, run all activity profiles in Kata, verify teardown and local artifact identity, and retain no upstream effect. | + +Required acceptance: every model profile and deterministic Reporter uses the same kernel; clock evidence brackets productive work; observed usage is not zero when elapsed time is non-zero; no sandbox/worktree survives; failure diagnostics identify the exact boundary. + +### 4. TreeDX — byte-exact unified changesets + +- `id`: `golden-treedx-byte-exact-changesets` +- Source: `treeseed-ai/treedx#54` +- Title: **Apply standard patches with byte-exact Git semantics** +- Request: Correct unified changeset application for creation, update, deletion, empty files, terminal-newline transitions, trailing blanks, Unicode, and CRLF. Validate hunk counts and context and reject malformed, truncated, or overlapping patches atomically without changing valid bytes. +- Summary: Prove TreeDX preserves exact repository bytes and trustworthy commit/digest custody. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Compare applicable unified-diff rules and current TreeDX behavior against exact Git fixtures without relying on prose-only assumptions. | +| Architect | Define byte, parsing, atomicity, error, and service ownership boundaries with no TreeSeed-specific model logic. | +| Tester | Build a shared byte matrix and malformed-patch suite that demonstrates the frozen defect and exact expected digests. | +| Engineer | Repair the Elixir patch engine minimally and preserve atomic changeset behavior. | +| Technical Writer | Document supported patch semantics, digest guarantees, and diagnostic behavior. | +| Releaser | Run TreeDX tests, compare every fixture to `git apply`, exercise local API read-back, and create only a local candidate. | + +Required acceptance: Git and TreeDX bytes/digests agree for the complete matrix; invalid patches mutate nothing; no trimming or newline normalization occurs. + +### 5. CLI — decision-governed operator surface + +- `id`: `golden-cli-decision-governed-workday` +- Source: `treeseed-ai/cli#216` +- Title: **Expose decision-governed workday execution without derived internals** +- Request: Generate and expose repeatable/comma-separated decision selection on workday planning and start, normalize IDs, bind start to the exact preflight digest, and provide graph/assignment/workday watch and explanation output without implementing business logic or exposing legacy plans. +- Summary: Prove `trsd` is a complete human and automation surface over the canonical SDK/API contracts. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Audit generated command descriptors, handwritten exceptions, JSON stability, help, and missing acceptance-observation commands. | +| Architect | Define the smallest generated command/readback surface and strict CLI/API responsibility boundary. | +| Tester | Cover repeated/comma-separated parsing, empty/duplicate rejection, body mapping, digest binding, JSON output, watch cursors, and terminal cleanup. | +| Engineer | Implement generated command wiring and delete aliases or handwritten duplicate schemas. | +| Technical Writer | Update command help and one complete proposal-to-report operator story. | +| Releaser | Build/pack locally and run the complete simulation through installed-package-style `trsd` with machine-readable receipts. | + +Required acceptance: `--decision` cannot directly select acting activity or author graph state; JSON remains parseable without warning pollution; operators can explain every gate and inspect all acceptance evidence. + +### 6. Deployment — manager-owned sandbox rebuild and restoration + +- `id`: `golden-deployment-manager-owned-sandbox-rebuild` +- Source: `treeseed-ai/deployment#743` +- Title: **Rebuild and restore Agent Kata guests through manager custody** +- Request: Provide a manager-owned development target that performs fixed guest build, import, digest binding, broker restart, active-assignment exclusion, and restoration without caller Docker authority, host-path parameters, package publication, or productive-time charging. +- Summary: Prove sandbox runtime development is privileged, exact, reversible, and independent of assignment time. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace manager, supervisor, container runtime, broker, digest, and active-assignment boundaries and known restoration evidence. | +| Architect | Define fixed privileged operations, state transitions, exclusion gates, rollback, and untrusted caller inputs. | +| Tester | Add security, active/recoverable assignment, idempotency, digest, archive cleanup, restart, and restoration tests. | +| Engineer | Implement the minimal manager target and remove any caller-owned privileged path. | +| Technical Writer | Document operator behavior, diagnostics, timing separation, and explicit restoration. | +| Releaser | Build/import a changed guest locally, prove Kata observes it, then restore the prior digest and verify no residue. | + +Required acceptance: no sudo/Docker-group requirement enters the assignment; active work blocks replacement; released selection restores the exact prior digest; preparation time is not billed as productive assignment time. + +### 7. Identity — stable source watcher boundaries + +- `id`: `golden-identity-stable-development-watcher` +- Source: `treeseed-ai/identity#36` +- Title: **Prevent generated Identity assets from retriggering source builds** +- Request: Make persistent Identity development watch only handwritten package/theme sources, ignore generated theme output and `.treeseed` state, produce one atomic build marker per real input change, and remain compatible with direct build and tests. +- Summary: Prove a sovereign identity package can run persistently without self-triggered rebuild loops. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace source, generated theme, build marker, watcher, and manager interactions with exact file/event evidence. | +| Architect | Define source/generated ownership, event coalescing, atomic readiness, and recovery boundaries. | +| Tester | Add unchanged-start, one-change, generated-output, `.treeseed`, burst, failure, and restart watcher tests. | +| Engineer | Implement minimal watch filters/coalescing and atomic marker behavior. | +| Technical Writer | Document watched inputs, ignored state, diagnostics, and recovery. | +| Releaser | Run direct verify and a timed local watch simulation proving one build per source change and no loop. | + +Required acceptance: generated output never retriggers; real changes are not lost; no live Identity service, account, issuer, or credential is mutated. + +### 8. UI — reusable capacity and AI management primitives + +- `id`: `golden-ui-operational-management-primitives` +- Source: `treeseed-ai/ui#48` +- Title: **Provide reusable operational lists and focused management wizard** +- Request: Complete reusable capacity/AI operational list and management-wizard primitives with authoritative states, retained drafts, validation, direct navigation, accessibility, responsive behavior, and no fabricated inventory or application business logic. +- Summary: Prove shared UI owns reusable presentation and interaction contracts while Admin owns workflows. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Inventory current consumers, accessibility guidance, responsive failures, and duplicated list/wizard implementations. | +| Architect | Define generic component props/events/state ownership and the boundary against Admin/API semantics. | +| Tester | Add unit/component and browser tests for search, filters, empty/unavailable, drafts, errors, keyboard use, and 390px layout. | +| Engineer | Implement or simplify the primitives and remove duplicate component paths. | +| Technical Writer | Update component API, examples, accessibility behavior, and migration guidance. | +| Releaser | Build package/sandbox, run unit and Playwright checks locally, pack, and verify exports/assets. | + +Required acceptance: no horizontal overflow; no invented service instances; consumers need no copied controller; no credentials or live provider state are mutated. + +### 9. Core — atomic direct-build readiness + +- `id`: `golden-core-atomic-build-readiness` +- Source: `treeseed-ai/core#8` +- Title: **Make direct package builds publish atomic readiness** +- Request: Ensure the declared direct package build writes `dist/.treeseed-build-complete.json` last and atomically, retains watch behavior, and cannot expose a stale or partial generation to dependent UI/Core/Admin development rebuilds. +- Summary: Prove Core's package development contract has one reliable readiness authority. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace build/watch marker writers, overlay consumers, dependency rebuilds, and stale-marker failure modes. | +| Architect | Define one marker schema/write owner, atomic replacement, generation identity, and failure cleanup. | +| Tester | Add direct build, watch build, interrupted build, stale marker, atomicity, and dependent-consumption tests. | +| Engineer | Make the ordinary build own the final atomic marker and reuse it from watch without duplicate implementations. | +| Technical Writer | Document direct/watch readiness and dependency-consumption semantics. | +| Releaser | Run Core build/test/fixture checks and a local UI -> Core -> Admin rebuild simulation. | + +Required acceptance: a failed build never advertises readiness; successful direct and watched builds use the same marker implementation; no timeout after a valid direct build. + +### 10. Admin — truthful assignment-permission management + +- `id`: `golden-admin-assignment-permission-authoring` +- Source: `treeseed-ai/admin#96` remaining permission-authoring gate +- Title: **Author and explain assignment permissions from authoritative policy** +- Request: Complete the Admin capacity workflow for viewing and authoring the simplified content/tool permission ceilings and exact assignment grants. Use current API/SDK authority, expose denials and provenance, and never fabricate policy digests, provider grants, credentials, or alternate permission models. +- Summary: Prove administrators can understand and manage the one permission architecture safely. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace current Admin/API/SDK permission displays, six-policy ambiguity, authorization, CSRF/CAS/idempotency, and help gaps. | +| Architect | Define screen/workflow ownership and the exact ceiling -> policy -> grant explanation without duplicating evaluation. | +| Tester | Add authorization, stale-CAS, invalid ceiling, denied grant, idempotency, redaction, accessibility, and browser-flow tests. | +| Engineer | Implement the focused workflow against generated operations and delete fabricated/legacy permission paths. | +| Technical Writer | Update contextual help for ceilings, policies, grants, denials, and provider capabilities. | +| Releaser | Build Node/Cloudflare variants, run unit/browser simulation with disposable records, and verify cleanup and no live approval. | + +Required acceptance: Admin displays API explanations rather than recomputing policy; no secret appears in HTML/results; disposable changes clean up; no provider is approved/revoked and no paid capacity is activated. + +### 11. Reviewer — correlated fixture identity and cleanup + +- `id`: `golden-reviewer-correlated-fixture-cleanup` +- Source: `treeseed-ai/reviewer#47` +- Title: **Correlate browser identities and clean failed fixture campaigns** +- Request: Derive bounded deterministic fixture identities from complete correlated run IDs, preserve profile-scoped immutable evidence, and run blocked deletion producers as best-effort cleanup without reporting their functional guarantees as passed. +- Summary: Prove Reviewer separates guarantee evidence from cleanup evidence and leaves no destructive fixture residue. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace run/profile/scene identity derivation, evidence roots, prerequisite blocking, and cleanup residue. | +| Architect | Define deterministic identity, evidence immutability, cleanup scheduling, loopback safety, and pass/fail semantics. | +| Tester | Add repeated-profile collision, failed prerequisite, blocked delete, cleanup failure/success, evidence, and non-loopback rejection tests. | +| Engineer | Implement bounded full-correlation IDs and independent best-effort cleanup execution. | +| Technical Writer | Document guarantee versus cleanup outcomes and evidence interpretation. | +| Releaser | Run repeated local browser campaigns with injected failure and verify residue removal and truthful summaries. | + +Required acceptance: cleanup never converts a failed guarantee to passed; profile evidence IDs remain distinct; all target origins remain loopback-only. + +### 12. Engineering Template — governed generated-project adoption + +- `id`: `golden-template-engineering-governed-adoption` +- Source: `treeseed-ai/template-engineering#4` +- Title: **Generate and adopt an engineering project idempotently** +- Request: Complete the template-owned contract for authenticated project creation by generating a disposable project from the exact template release, validating only portable substitutions, proving build/test, adopting Git/TreeDX resources, and replaying as noop without credentials or host-specific state. +- Summary: Prove the engineering starter is portable, governed, buildable, and idempotently consumable. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Audit template placeholders, lockfile, tracked archive, generated outputs, adoption preconditions, and rc supersession. | +| Architect | Define template versus Platform/API/CLI ownership and exact create/adopt/noop/rollback boundaries. | +| Tester | Add clean generation, invalid substitution, archive identity, collision, partial failure, adoption, and noop tests. | +| Engineer | Complete only template-owned initialization behavior and remove obsolete template paths. | +| Technical Writer | Update generated contributor and project-creation guidance. | +| Releaser | Generate a disposable local project, run its checks/build, simulate Git/TreeDX adoption twice, and prove second run noop. | + +Required acceptance: generated source has no credentials/personal paths; exact pins and lockfile remain; only tracked files enter the archive; no remote repository is created in simulation. + +### 13. Research Template — reproducible evidence-backed research project + +- `id`: `golden-template-research-reproducible-evidence-project` +- Source: `treeseed-ai/template-research#5`, expanded to project purpose +- Title: **Generate a reproducible source-backed research project** +- Request: Complete a source-only development and template contract that generates a disposable research project containing a book, gathered-source registry, synthesis notes, knowledge pages, citation validation, and exact provenance without a service endpoint or release publication. +- Summary: Prove the research starter supports governed evidence-to-knowledge work and verifies as source-only. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Use a fixed local evidence corpus to specify provenance, citation, conflicting-source, and synthesis requirements. | +| Architect | Define the smallest generated repository/library structure and boundaries among source, note, knowledge, and book. | +| Tester | Add generation, missing/invalid citation, conflicting evidence, deterministic output, source-check, and no-endpoint tests. | +| Engineer | Implement the portable template/development declaration and validation fixtures. | +| Technical Writer | Produce the generated research workflow and contributor guidance. | +| Releaser | Generate twice from identical inputs, compare bytes, run source-check, and prove no process, endpoint, RC, or upstream change. | + +Required acceptance: repeated generation is byte-stable; every synthesized claim resolves to fixed evidence; the project declares no false runtime target. + +### 14. Market — canonical shared brand assets + +- `id`: `golden-market-canonical-ui-brand-assets` +- Source: `treeseed-ai/market#4` +- Title: **Consume canonical TreeSeed brand assets from UI** +- Request: Remove Market ownership of duplicated logo/favicon bytes. Synchronize them from the selected local `@treeseed/ui` package during development and build, prove byte identity, and preserve Market-specific application content and independent deployment authority. +- Summary: Prove cross-package asset ownership without copied source authority. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Inventory Market/UI asset copies, build paths, consumers, licenses, and drift history with exact digests. | +| Architect | Define UI ownership, Market synchronization timing, generated-file treatment, and failure/readiness behavior. | +| Tester | Add missing-export, byte-drift, dev/build, stale-output, favicon/logo, and independent-build tests. | +| Engineer | Implement one synchronization path and remove Market-owned duplicate source bytes. | +| Technical Writer | Document asset ownership and local package-development behavior. | +| Releaser | Build/test Market against the local UI candidate, compare digests, and produce an unpushed web candidate only. | + +Required acceptance: Market and UI emitted bytes match exactly; Market does not gain authority over UI source; no hosted deployment occurs. + +### 15. Market API — resource-bound workload credentials + +- `id`: `golden-market-api-resource-bound-workload-credentials` +- Source: `treeseed-ai/market-api#6` +- Title: **Replace shared gateway assertions with scoped workload credentials** +- Request: Integrate resource-specific workload credentials that preserve caller and workload actor independently, reject issuer/audience/client/scope crossover, and remove HS256 shared-service assertion handling without fallback. Keep all live authentication and data unchanged during simulation. +- Summary: Prove Market API authenticates delegated workloads without conflating service and user identity. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Trace current gateway assertions, caller/workload propagation, SDK/Identity interfaces, and threat boundaries. | +| Architect | Define verification, principal representation, authorization separation, failure, migration, and rollback boundaries. | +| Tester | Add valid delegation plus issuer, audience, client, scope, signature, expiry, replay, actor-confusion, and legacy-token rejection tests. | +| Engineer | Implement strict adapters/middleware and delete shared-secret compatibility behavior. | +| Technical Writer | Document configuration, principal semantics, errors, migration, and no-role-from-token boundary. | +| Releaser | Run local provider fixtures/build/tests with disposable keys and verify no key, live account, database, or deployment mutation. | + +Required acceptance: caller and workload remain distinct; authentication grants no application role by itself; old assertions fail after the simulated cutover. + +### 16. Skill — current source-only TreeSeed operating skill + +- `id`: `golden-skill-current-source-only-guidance` +- Source: `treeseed-ai/skill#7`, expanded to skill purpose +- Title: **Verify the TreeSeed operating skill against the current CLI and architecture** +- Request: Make the versioned TreeSeed skill source-only developable and verify that its instructions use current generated `trsd` commands, exact-ref custody, living graph, simulation safety, and issue/Actions authority without retired commands, compatibility paths, or a false service runtime. +- Summary: Prove the skill teaches the same architecture the system actually exposes. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Compare every documented command and workflow to current SDK/CLI descriptors and architecture plans. | +| Architect | Define skill scope, progressive disclosure, exact authority boundaries, and source-only development contract. | +| Tester | Add link/command/schema/reference checks, forbidden-term checks, representative task simulations, and no-runtime assertions. | +| Engineer | Update the skill and verification tooling with the smallest non-duplicated instruction set. | +| Technical Writer | Edit user-facing operating guidance for clarity, recovery, and evidence interpretation. | +| Releaser | Run source-check and skill validation from a clean checkout; prove no process, endpoint, RC, install, or upstream mutation. | + +Required acceptance: every command exists in the generated catalog; retired architecture terms do not survive; the skill remains a skill rather than another CLI/business-logic implementation. + +### 17. Platform — complete declarative development composition + +- `id`: `golden-platform-declarative-development-composition` +- Source: `treeseed-ai/platform#518` +- Title: **Compose every first-party project for persistent local development** +- Request: Complete the canonical seed/profile/site declarations and documentation so every first-party project is selectable according to its actual runtime type, dependency closure, and source-only or runnable behavior without RC publication. Platform remains declarative and contains no package implementation, credentials, host identity, or duplicate runtime policy. +- Summary: Prove the portfolio composes as one development system while package ownership remains independent. + +| Work item | Project-specific objective and expected output | +|---|---| +| Researcher | Inventory all seed projects, repositories, libraries, runtime declarations, profiles, dependencies, and development gaps. | +| Architect | Record the canonical declarative composition, ownership boundaries, dependency closure, persistent selection, and failure restoration. | +| Tester | Add seed/profile/site validation, complete-inventory, runtime-type, forbidden-environment, visibility/license, closure, and source-only tests. | +| Engineer | Correct only Platform-owned declarations/docs and remove stale composition paths. | +| Technical Writer | Update the one no-RC local development and verification story. | +| Releaser | Validate/plan the seed without applying externally, exercise local development selection in simulation, and verify exact composition/readback. | + +Required acceptance: all 17 engineering projects and their libraries are represented; Identity is not silently omitted from eligible simulation capacity; only `staging` and `production` environments exist; Platform contains no functional package implementation. + +## Execution order + +### Stage 0 — preflight + +- [ ] Freeze the campaign manifest and exact proposal bytes. +- [ ] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. +- [ ] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. +- [ ] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. +- [ ] Confirm upstream write credentials and all external mutation tools are absent. +- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state. + +### Stage 1 — SDK alone + +- [ ] Run the complete SDK proposal lifecycle and workday until it passes this document. +- [ ] On an implementation defect, repair the owning package/runtime, reset, and rerun the identical SDK proposal from the frozen source. +- [ ] Do not proceed on missing evidence, unexplained retry, zero usage, contradictory mode, stale planning state, or leaked workspace. + +### Stage 2 — API alone + +- [ ] Run the complete API proposal lifecycle and workday under the same rules. +- [ ] Reset and rerun the identical API proposal after each implementation repair. +- [ ] Require direct content-to-graph projection and prove no capacity-plan/execution-input compatibility path participates. + +### Stage 3 — SDK and API together + +- [ ] Reset both projects to their campaign bases and restore the identical proposal bytes. +- [ ] Start one simulation workday with the accepted SDK proposal. +- [ ] At the deterministic trigger `SDK tests-first review approved`, accept the already-ready API proposal through its normal proposal decision. Do not call a graph mutation operation. +- [ ] Observe the API proposal's nodes enter the existing living graph and compete fairly for current capacity without restarting the workday. +- [ ] Require the one workday Reporter to include both projects' evidence and require isolated project grants/workspaces/settlements. +- [ ] Reconcile again and prove noop. + +### Stage 4 — remaining projects individually + +Run in the numbered order above, beginning with Agent and ending with Platform. A project advances only when all its lifecycle, graph, assignment, output, review, usage, settlement, teardown, and no-upstream-mutation checks pass. + +- [ ] Agent +- [ ] TreeDX +- [ ] CLI +- [ ] Deployment +- [ ] Identity +- [ ] UI +- [ ] Core +- [ ] Admin +- [ ] Reviewer +- [ ] Engineering Template +- [ ] Research Template +- [ ] Market +- [ ] Market API +- [ ] Skill +- [ ] Platform + +### Stage 5 — all projects in one workday + +- [ ] Reset all 17 projects and use the same campaign bases and proposal bytes proven individually. +- [ ] Add the fixed cross-project relations below through the existing ordinary TreeDX relation/link mechanism, bound to exact proposal refs and work-item anchors. Do not modify the proposals or create a portfolio plan object. +- [ ] Start one simulation workday with the first eight accepted proposal decisions selected. +- [ ] At the deterministic trigger `every selected project has one approved acting result`, accept the other nine proposals normally and verify content-driven graph expansion during the active workday. +- [ ] Apply project and agent-class weighted fairness with stable ties and automatic idle-share flow; no project or class may starve while an eligible provider has capacity. +- [ ] Exercise provider-global team fairness without combining project grants, workspaces, branches, results, or settlements. +- [ ] Require all 17 simulated release candidates, all review decisions, one deterministic portfolio report, complete settlement, teardown, and noop reconciliation. +- [ ] Compare post-run external state to Stage 0 and prove no upstream mutation. + +Fixed cross-project relations for the portfolio run: + +| Approved predecessor | Dependent work item | Reason | +|---|---|---| +| SDK `simulate-release` | API `tests-first` | API validates the accepted portable contract candidate | +| SDK `simulate-release` and API `simulate-release` | CLI `tests-first` | CLI validates the generated contract and live operation behavior | +| Agent `simulate-release` | Deployment `tests-first` | Deployment validates the exact guest/provider candidate | +| TreeDX `simulate-release` | API `simulate-release` | API acceptance uses byte-exact content custody | +| Identity `simulate-release` | Market API `tests-first` | Market API validates the exact workload-credential adapter | +| Identity, UI, Core, and API `simulate-release` | Admin `tests-first` | Admin validates its exact integrated dependency chain | +| UI and Core `simulate-release` | Market `tests-first` | Market validates canonical shared assets and web runtime | +| Engineering Template, Research Template, Skill, CLI, and Deployment `simulate-release` | Platform `tests-first` | Platform validates the exact portfolio composition inputs | + +The accepted architecture already requires explicit TreeDX relations for cross-project dependencies. If no one canonical existing content operation can express these exact source/target relations and grants, classify that as `PLAN_REVIEW_REQUIRED`; do not invent a hidden portfolio graph or silently omit cross-project dependency acceptance. + +### Stage 6 — controlled failure campaigns + +Run these only after the normal golden portfolio passes. Faults belong to the acceptance harness, not to the proposal or agent prompt. + +- [ ] Corrupt one SDK Actor summary so it disagrees with its structured Git reference; Reviewer must request changes and the same Actor/Reviewer pair must advance once to approval. +- [ ] Repeat a deterministic review defect through the configured maximum; the work item must block for a new decision rather than loop or silently pass. +- [ ] Interrupt one provider after candidate creation; retry must preserve exact evidence, create no duplicate execution or settlement, and clean both attempts. +- [ ] Make one provider ineligible by capability and one by time; admission must explain both and choose only an eligible provider. +- [ ] Let a content question open and resolve mid-workday; only its affected connected component may change. +- [ ] Attempt upstream Git, TreeDX synchronization, publication, deployment, and credential mutation; every attempt must fail before external effect. + +## Mandatory live monitoring + +The implementation agent must watch every workday while it runs. Starting a workday and checking the terminal status later is not acceptance. + +At minimum, inspect and retain a snapshot on: + +- every GraphRevision; +- every node becoming ready, blocked, assigned, awaiting review, approved, exhausted, or complete; +- every assignment creation, claim, clock check, completion, failure, return, cancellation, or retry; +- every lease/reservation transition and settlement; +- every candidate/content commit and review decision; +- workday activation, planning-round transition, closing, Reporter completion, and end; +- every provider health, eligibility, timing, sandbox, and teardown transition. + +For each new assignment, compare its exact source/authority/context refs, predecessor result IDs, effective profile, handler and origin, grant, workspace/base/branch/writable paths, estimate, deadline, provider/runtime build, execution mode, and node revision with the expected graph before allowing the run to continue. + +The monitor must immediately stop new admissions and report when an assignment has the wrong project, class, activity, handler, dependency, context, grant, base, workspace, mode, estimate, or deadline; when an agent mutates outside its workspace; when a Reviewer mutates a candidate; when an expected node is skipped; or when a result cannot support its summary. + +## Pass criteria for one project + +A project passes only when all checks below are evidenced from authoritative records. + +### Governance and graph + +- [ ] The accepted decision binds one exact ready proposal revision and digest. +- [ ] Discussion, questions, estimates, authority, and acceptance criteria are complete before decision. +- [ ] The initial graph is deterministic; identical reconciliation is noop. +- [ ] Exactly six authored Actor nodes and six generated Reviewer nodes represent the proposal work. +- [ ] Every edge has source provenance and downstream readiness waits for approved review, not merely Actor completion. +- [ ] Mid-workday content changes affect only the connected component. + +### Profiles and collaboration + +- [ ] All eight chat probes use exact addressed context and create no workflow edges. +- [ ] All eight agents complete both planning rounds; round 2 materially cites all eight round-1 results. +- [ ] Seven valid estimating results support the accepted fixed estimates. +- [ ] Researcher, Architect, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter all perform their distinct responsibilities. +- [ ] Tester authors the tests before Engineer implementation; Engineer consumes the approved Tester result rather than replacing it. + +### Assignments and outputs + +- [ ] Every ready node creates exactly one assignment, lease, and reservation transactionally. +- [ ] Normal golden runs have no failed, returned, cancelled, duplicated, or unexplained extra node revisions. +- [ ] Every assignment belongs to the authoritative simulation workday, receives a simulation-compiled immutable grant, and has at most one mutable workspace; no record owns a contradictory mode. +- [ ] Every completed assignment has exactly one valid general result with a truthful summary and resolvable exact refs. +- [ ] Every model result retains two correctly ordered clock checks and real elapsed/token/native usage. +- [ ] Every verification record contains command, status, exit code, duration, and output digest. +- [ ] Every Reviewer decision binds the exact candidate and criteria; Reviewer changes no candidate bytes. +- [ ] The final local integration candidate contains exactly the approved predecessor chain and passes project verification. + +### Workday, capacity, and cleanup + +- [ ] Both planning rounds are terminal and list their exact assignment IDs. +- [ ] Admitted seconds by project and agent class are populated and agree with reservations/results. +- [ ] Assignment elapsed usage agrees with timestamps within an explained tolerance; visibly elapsed work is not stored as zero. +- [ ] Every attempt has exactly one UsageSettlement, including failed controlled attempts. +- [ ] Closing begins only when ordinary admissions stop and required Reporter capacity is available. +- [ ] Reporter finishes and `Workday.reportRef` resolves before the workday becomes `ended`. +- [ ] Every sandbox, worktree, mutable TreeDX workspace, lease, and provider session is closed or removed. +- [ ] Upstream refs, releases, issues, registries, deployments, credentials, and live data are unchanged. + +### Clean architecture + +- [ ] CLI/API records match `docs/agent.schema.yml` and expose no retired compatibility fields. +- [ ] No assignment plan/status/summary TreeDX model, frozen signal graph, capacity-plan work unit, demand row, execution input, source-candidate record, or alternate synthesis path participates. +- [ ] One fact has one authority and one representation. + +## Failure classification and retry instruction + +The implementation agent must classify every failure before changing code: + +- `IMPLEMENTATION_DEFECT`: the fixed proposal is valid, but a contract, projection, scheduler, provider, handler, workspace, result, review, accounting, CLI, or teardown implementation violated it. Fix the owning implementation, reset completely, and rerun the same proposal from the same source bases. +- `ENVIRONMENT_DEFECT`: required local supply or infrastructure is unhealthy. Repair the environment without changing proposal semantics, reset, and rerun. +- `PLAN_REVIEW_REQUIRED`: the fixed proposal is ambiguous, impossible, unsafe, contradicts project ownership/current source, lacks a necessary input, or cannot be represented by the agreed architecture without adding duplicate authority. + +On `PLAN_REVIEW_REQUIRED`, stop the project and portfolio campaign. Do not edit the golden proposal, invent a replacement, weaken acceptance, skip the project, or continue to later stages. Report: + +```text +PLAN_REVIEW_REQUIRED +project: +proposal: +workday: +failed expectation: +observed evidence: +why implementation repair is insufficient: +smallest proposed plan correction: +``` + +Continue retrying implementation and environment defects from the frozen start while each retry produces new, useful evidence. Stop and request review if the same unexplained failure repeats three times, because repeated blind retries are not progress. + +## Progress record + +The agent running this campaign must update only this section's checkboxes and tables plus concise observations/blockers. It must not rewrite proposal definitions or pass criteria during execution. + +| Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | +|---|---|---:|---|---|---| +| Preflight | — | 0 | not started | — | — | +| SDK | — | 0 | not started | — | — | +| API | — | 0 | not started | — | — | +| SDK + API | — | 0 | not started | — | — | +| Agent | — | 0 | not started | — | — | +| TreeDX | — | 0 | not started | — | — | +| CLI | — | 0 | not started | — | — | +| Deployment | — | 0 | not started | — | — | +| Identity | — | 0 | not started | — | — | +| UI | — | 0 | not started | — | — | +| Core | — | 0 | not started | — | — | +| Admin | — | 0 | not started | — | — | +| Reviewer | — | 0 | not started | — | — | +| Engineering Template | — | 0 | not started | — | — | +| Research Template | — | 0 | not started | — | — | +| Market | — | 0 | not started | — | — | +| Market API | — | 0 | not started | — | — | +| Skill | — | 0 | not started | — | — | +| Platform | — | 0 | not started | — | — | +| All projects | — | 0 | not started | — | — | +| Failure campaigns | — | 0 | not started | — | — | + +## Completion + +Agent execution is accepted only when every project proposal passes alone, SDK and API pass together, all 17 pass in one living-graph workday, the controlled failure campaigns behave exactly as specified, every result and transition is auditable, all simulation effects remain local and cataloged, all mutable resources are torn down, external state is byte-for-byte or identity-for-identity unchanged, and no legacy or alternate implementation path remains. From e376bc78b64f993ca854cd87338a4be374709cd8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 11:58:48 -0400 Subject: [PATCH 336/501] Define authoritative golden agent acceptance --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 11 ++++------- docs/agent-assignments.md | 33 ++++++--------------------------- docs/agent.schema.yml | 3 +++ seeds/treeseed.yaml | 5 +++-- 5 files changed, 17 insertions(+), 37 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 69e2d531..ecb9c92e 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -1,6 +1,6 @@ # Agent execution acceptance -**Status:** proposed acceptance authority +**Status:** authoritative acceptance specification **Scope:** proposal governance, activity profiles, living execution graph, workdays, capacity allocation, isolated workspaces, review, simulated release, reporting, and portfolio coordination **Contract:** [`docs/agent.schema.yml`](./agent.schema.yml) **Architecture:** [`docs/agent-assignments.md`](./agent-assignments.md) and [`docs/agent-architecture.md`](./agent-architecture.md) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 87c35314..b69074c7 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -485,7 +485,7 @@ Acceptance: - [ ] Create explicit integration assignments whenever several Git predecessors must be combined. - [ ] Delete AgentKernelProfile/Policy, metadata-only handler routing, dynamic module/process loading, duplicate authority presets/raw tools/branch policies/context, old allocation hierarchy, fixed team polling, and alternate provider execution paths. - [ ] Remove every compatibility field, parser, alias, route, table, fixture, test, document, and feature switch associated with the retired architecture. -- [x] Run architecture-specific CLI acceptance, then reference the assignment plan's graph acceptance receipt rather than repeating it. +- [ ] Run architecture-specific CLI acceptance, then reference the assignment plan's graph acceptance receipt rather than repeating it. Earlier synthetic workdays are diagnostic evidence only. - [ ] Publish and read back one coordinated compatible release set. Architecture CLI surface: @@ -529,23 +529,20 @@ Stop and record a blocker if exact authority, isolation, project access, provide | 2026-09-14 | One build-time handler registry and AgentKernel execute the isolated provider transport | Focused Agent kernel/provider suites; source-backed Kata acceptance retained in Issue #520 | | 2026-09-14 | Deterministic Reporter commits through TreeDX and settles through the ordinary completion path | Focused Agent/API tests; live Reporter receipt retained in Issue #520 | | 2026-09-14 | Persistent development selections run the touched SDK, API, Agent, and TreeDX components | Managed development status read-back; no RC required | -| 2026-09-15 | The SDK golden path exercised Architect, Tester, Engineer, Reviewer, and Reporter through isolated Kata guests, exact grants, read-only/TreeDX/Git workspaces, request-changes revision, teardown, terminal approval, and closeout | Cross-reference workday `workday-4521844e-4d95-467d-94fa-18c11fabb4a3` and final decision `c14d7d852a4199067dc5b2350fa0d9461d793a21` in `docs/agent-assignments.md` and Issue #520 | -| 2026-09-15 | Model timing awareness is an enforced provider boundary: the prompt states the productive budget, the first tool call and pre-finalization call query the authoritative clock, and completion with fewer than two successful model-initiated checks is rejected | Agent timing/provider tests and the golden workday above; the final Reviewer recorded 113 seconds near start and 78 seconds before closeout | -| 2026-09-14 | Shared workday plan/start, two planning rounds, predecessor-result context, active/closing/ended lifecycle, and deterministic Reporter passed for every SDK agent planning or estimating profile | Workday `workday-37d55a3f-9fa3-4680-bb84-da80109b093a`; 14 model assignments stored 2/2 timing evidence and round 2 received all seven round-1 results | ## Observations and Blockers ### Current integrated state -- Persistent development mode runs the current SDK, API, Agent, and TreeDX sources through the canonical provider-to-AgentKernel path. Chat, planning, estimating, Architect, Tester, Engineer, and Reviewer model work have passed the mandatory two-check assignment-clock contract; graph and team-clone details remain owned by `docs/agent-assignments.md`. +- Persistent development mode runs SDK, API, Agent, and TreeDX source builds through the provider-to-AgentKernel path. Component tests prove the kernel, deterministic Reporter, and development activation; activity-profile acceptance remains governed solely by `docs/agent-acceptance.md`. ### Current active blocker -- No active blocker exists for the accepted SDK golden proposal path. +- Stage 0 is blocked on integrating the single simulation-mode workday authority and campaign freeze into the live runtime; graph details are tracked in `docs/agent-assignments.md`. ### Next acceptance milestone -- Complete Releaser, Researcher, and Technical Writer acting plus project-owned-handler acceptance through the real graph under the same assignment-clock gate. +- Run every SDK activity and all six reviewed work items through isolated provider execution during the unchanged SDK golden proposal. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 35eaa321..2bca1e8f 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -39,25 +39,7 @@ Checkboxes report implementation status only: ## Golden Development Acceptance -Development advances one ordinary accepted proposal through the real local system before broader scenarios or releases: - -```text -accepted proposal - ↓ -Architect result → Reviewer approval - ↓ -Tester evidence → Reviewer approval - ↓ -Engineer candidate → request changes → same Engineer revision - ↓ -same Reviewer re-review → approval → terminal reconciliation -``` - -This is the primary acceptance test. Every defect found on this path receives one focused regression test in the owning package, a local development rebuild, and an immediate replay of the same frontier. Do not cut an RC, broaden diagnostics, or pursue an unrelated defect before the path passes; record non-blocking discoveries in Platform Issue #520 or a bounded owner-repository issue. - -Use the agents themselves as soon as a node is runnable. Read-only discussion work may diagnose the current boundary; Tester produces executable evidence; Engineer receives exact approved predecessor results; Reviewer evaluates exact immutable candidates. Productive agent work and system acceptance are the same workflow, not separate exercises. - -After this golden path passes, the tested SDK agent team becomes the development baseline. A single SDK/API/CLI plan/apply operation must clone that team into selected projects or every eligible team project, adapt only project identity and exact content bindings, and return `noop` when repeated. Do not copy files manually, duplicate agent policy in Platform, or broaden the activity matrix before the golden receipt exists. +[`docs/agent-acceptance.md`](./agent-acceptance.md) is the complete and exclusive testing guide. This plan records only implementation TODOs and fully proven completion. Earlier synthetic or reduced workdays are diagnostics and do not satisfy acceptance. The current frontier is Stage 0 followed by the unchanged SDK golden proposal; do not broaden scenarios or cut an RC before that path passes. ## Decisions @@ -396,8 +378,8 @@ Acceptance: Acceptance: -- [x] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. -- [x] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. +- [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. The earlier reduced proposal did not include the six fixed SDK work items required by the acceptance specification. +- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. This remains to be replayed inside the unchanged SDK golden campaign. - [ ] Two projects progress in one team graph without copying project graphs or leaking context. ### Phase 5 — Clean cutover and managed CLI acceptance @@ -449,23 +431,20 @@ This plan adds only assignment-specific responsibilities to the ownership table |---|---|---| | 2026-09-14 | Draft proposal intake, exact proposal revision/digest binding, and proposal-governance review use the living graph contracts | Focused SDK/API proposal and projection suites; current development read-back | | 2026-09-14 | Ready-node admission compiles provider capability demand and closing Reporter dependency from the same graph | Focused API admission/projector suites; Reporter settlement receipt retained in Issue #520 | -| 2026-09-15 | The SDK golden proposal completed Architect and Tester review, then the same Engineer and Reviewer nodes advanced through request changes to approval without duplicate node revisions; every model-backed attempt completed two authoritative clock checks | Decision `ce5c641e-afa1-49cb-bd16-4c8f4ba815bb`; workday `workday-4521844e-4d95-467d-94fa-18c11fabb4a3`; final review decision `c14d7d852a4199067dc5b2350fa0d9461d793a21`; detailed receipts retained in Issue #520 | -| 2026-09-14 | Real planning and estimating workdays projected standing dependencies, executed two rounds through ordinary graph nodes, and closed through Reporter | Workdays `workday-0f15032a-3c4a-4409-8708-a88f2ee343c9` and `workday-4388ebd1-57b5-4da3-8eb8-ac80a1d5d4e1`; detailed receipts retained in Issue #520 | -| 2026-09-14 | Every SDK planning/estimating profile completed a two-round targeted workday; round 2 received the exact seven round-1 general results before Reporter closeout | Workday `workday-37d55a3f-9fa3-4680-bb84-da80109b093a`; assignment/result details retained in Issue #520 | ## Observations and Blockers ### Current integrated state -- The SDK golden proposal now completes proposal acceptance, Architect and Tester work with review, Engineer request-changes revision, Reviewer approval, Reporter closeout, and terminal reconciliation through one content-derived graph; no node revision produced more than one assignment. +- Component tests prove proposal intake, exact decision binding, deterministic living-graph projection, and ordinary assignment/result plumbing. No golden project has yet passed the authoritative acceptance specification. ### Current active blocker -- No active blocker exists for the accepted SDK golden proposal path. +- Stage 0 is blocked until the required single workday execution-mode authority and frozen campaign manifest are integrated into the live development runtime. ### Next acceptance milestone -- Prove the remaining multi-project graph, bounded review-cycle exhaustion, and clean-cutover checkboxes without creating another assignment path. +- Freeze Stage 0, then run the unchanged SDK proposal through discussion, estimates, decision, the living graph, all six reviewed work items, simulated release, and Reporter closeout. ## Completion diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 834c3662..200bc047 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1597,6 +1597,7 @@ $defs: - schemaVersion - id - teamId + - executionMode - policyId - policyRevision - policySnapshot @@ -1613,6 +1614,8 @@ $defs: $ref: "#/$defs/Identifier" teamId: $ref: "#/$defs/Identifier" + executionMode: + enum: [simulation, production] policyId: $ref: "#/$defs/Identifier" policyRevision: diff --git a/seeds/treeseed.yaml b/seeds/treeseed.yaml index a7db79a4..8d3933fa 100644 --- a/seeds/treeseed.yaml +++ b/seeds/treeseed.yaml @@ -1,9 +1,9 @@ schemaVersion: treeseed.seed-bundle/v3 name: treeseed -version: 10 +version: 11 description: Portable first-party source and library inventory for integrated and selective development. environments: [local] -digest: sha256:e105e21f1f433f6fad9f60ff12098d2d16cb189ec24aaf3d812139e28257d342 +digest: sha256:8a71ce152df9fdb9696855c48da28f77a8755635a380caecc0386c6310c6ec60 resources: teams: - { key: 'team:treeseed', slug: treeseed, name: treeseed, displayName: TreeSeed, profileSummary: 'TreeSeed platform, packages, products, and agent operations.' } @@ -83,6 +83,7 @@ runtime: - project:treeseed/platform - project:treeseed/deployment - project:treeseed/api + - project:treeseed/identity - project:treeseed/treedx - project:treeseed/sdk - project:treeseed/ui From bcf89dccc333224f3b1ded0db003fa3462bf85b5 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 12:38:50 -0400 Subject: [PATCH 337/501] Record live golden acceptance frontier --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index b69074c7..f81ac2e0 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -534,11 +534,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs SDK, API, Agent, and TreeDX source builds through the provider-to-AgentKernel path. Component tests prove the kernel, deterministic Reporter, and development activation; activity-profile acceptance remains governed solely by `docs/agent-acceptance.md`. +- Persistent development mode runs SDK, API, Agent, and TreeDX source builds through the provider-to-AgentKernel path. The strict host-development generation, migrated API, operations runner, provider, and Kata broker are healthy; activity-profile acceptance remains governed solely by `docs/agent-acceptance.md`. ### Current active blocker -- Stage 0 is blocked on integrating the single simulation-mode workday authority and campaign freeze into the live runtime; graph details are tracked in `docs/agent-assignments.md`. +- No architecture blocker is known; the authenticated Stage 0 campaign freeze is tracked in `docs/agent-assignments.md`. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2bca1e8f..2d5dc3aa 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Component tests prove proposal intake, exact decision binding, deterministic living-graph projection, and ordinary assignment/result plumbing. No golden project has yet passed the authoritative acceptance specification. +- Component tests and live development read-back prove proposal intake, exact decision binding, deterministic living-graph projection, one durable workday `executionMode`, simulation-only source custody, and ordinary assignment/result plumbing. No golden project has yet passed the authoritative acceptance specification. ### Current active blocker -- Stage 0 is blocked until the required single workday execution-mode authority and frozen campaign manifest are integrated into the live development runtime. +- No architecture blocker is known. Stage 0 awaits an authenticated campaign freeze containing exact local team, profile, policy, offer, and governed content refs. ### Next acceptance milestone From ae0708b194d04b5f75c7a342ec17c2ae8db3f673 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 15 Sep 2026 18:31:55 -0400 Subject: [PATCH 338/501] docs: record golden agent campaign preflight --- docs/agent-acceptance.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index ecb9c92e..e4f716e6 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -530,13 +530,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [ ] Freeze the campaign manifest and exact proposal bytes. -- [ ] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. -- [ ] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. -- [ ] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. -- [ ] Confirm upstream write credentials and all external mutation tools are absent. -- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. -- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state. +- [x] Freeze the campaign manifest and exact proposal bytes. +- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. +- [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. +- [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. +- [x] Confirm upstream write credentials and all external mutation tools are absent. +- [x] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. +- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state. ### Stage 1 — SDK alone @@ -712,7 +712,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 0 | not started | — | — | +| Preflight | — | 1 | pass | campaign `agent-golden-20260915`, manifest `sha256:638c81db4b89ea1dd792014ffeb8ba5cdc5f7bf73f0934a46a3462ae8bf6c78b`, baseline `sha256:a4ac396b8cb92052273dff2372f0f9414f03144a91bf67a15b7645de1e954b88` | Frozen 17-project inputs, profiles, provider supply, simulation custody, live graph watch, teardown, credential exclusion, and external state baseline are verified. | | SDK | — | 0 | not started | — | — | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | From 1d8f3d4b9c33d21648888c6ac4bd91d5eb85c8c7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 03:29:15 -0400 Subject: [PATCH 339/501] docs: distinguish eight-role chat evidence from golden acceptance --- docs/agent-acceptance.md | 6 +++--- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index e4f716e6..bb574594 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -531,7 +531,7 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight - [x] Freeze the campaign manifest and exact proposal bytes. -- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. +- [ ] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Schema validation passed, but frozen work-item criteria incorrectly copy whole-project acceptance instead of each role's product boundary; campaign correction requires review. - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. @@ -712,8 +712,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 1 | pass | campaign `agent-golden-20260915`, manifest `sha256:638c81db4b89ea1dd792014ffeb8ba5cdc5f7bf73f0934a46a3462ae8bf6c78b`, baseline `sha256:a4ac396b8cb92052273dff2372f0f9414f03144a91bf67a15b7645de1e954b88` | Frozen 17-project inputs, profiles, provider supply, simulation custody, live graph watch, teardown, credential exclusion, and external state baseline are verified. | -| SDK | — | 0 | not started | — | — | +| Preflight | — | 1 | review required | Platform #520; frozen campaign `agent-golden-20260915` | Work-item acceptance boundaries in the materialized proposals must match the fixed role-specific products before the freeze is accepted. | +| SDK | — | 0 | lifecycle in progress; review required | Platform #520; protected eight-role send receipt | Eight source-grounded discussion responses are proven; no estimating/acting golden workday has started and no golden lifecycle has passed. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f81ac2e0..b82e1cce 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -534,11 +534,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs SDK, API, Agent, and TreeDX source builds through the provider-to-AgentKernel path. The strict host-development generation, migrated API, operations runner, provider, and Kata broker are healthy; activity-profile acceptance remains governed solely by `docs/agent-acceptance.md`. +- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Eight SDK chat roles have unique Kata assignments, observed usage, successful first/final clock checks, and verified teardown; this does not prove their other activities. Evidence remains in Platform #520. ### Current active blocker -- No architecture blocker is known; the authenticated Stage 0 campaign freeze is tracked in `docs/agent-assignments.md`. +- Frozen-input semantic review is tracked in `docs/agent-assignments.md`; no separate provider architecture blocker is known. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2d5dc3aa..4a56964f 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Component tests and live development read-back prove proposal intake, exact decision binding, deterministic living-graph projection, one durable workday `executionMode`, simulation-only source custody, and ordinary assignment/result plumbing. No golden project has yet passed the authoritative acceptance specification. +- The unchanged SDK draft has eight source-grounded discussion responses. Component tests pass, but the frozen campaign's work-item criteria fail semantic validation; no complete golden lifecycle has passed. Evidence remains in Platform #520. ### Current active blocker -- No architecture blocker is known. Stage 0 awaits an authenticated campaign freeze containing exact local team, profile, policy, offer, and governed content refs. +- Campaign review is required: frozen work-item criteria copy whole-project acceptance instead of each role's required product, making prerequisite reviews impossible before implementation. ### Next acceptance milestone -- Freeze Stage 0, then run the unchanged SDK proposal through discussion, estimates, decision, the living graph, all six reviewed work items, simulated release, and Reporter closeout. +- After the frozen-input correction is authorized, verify the single-round estimating correction, then resume the unchanged specified SDK product chain through final closeout. ## Completion From 273721e16eac4a68cfcba8d842b52189ced88a31 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 10:53:00 -0400 Subject: [PATCH 340/501] docs: refreeze authorized role-specific golden acceptance --- docs/agent-acceptance.md | 6 +++--- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index bb574594..40778dc3 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -531,7 +531,7 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight - [x] Freeze the campaign manifest and exact proposal bytes. -- [ ] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Schema validation passed, but frozen work-item criteria incorrectly copy whole-project acceptance instead of each role's product boundary; campaign correction requires review. +- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. @@ -712,8 +712,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 1 | review required | Platform #520; frozen campaign `agent-golden-20260915` | Work-item acceptance boundaries in the materialized proposals must match the fixed role-specific products before the freeze is accepted. | -| SDK | — | 0 | lifecycle in progress; review required | Platform #520; protected eight-role send receipt | Eight source-grounded discussion responses are proven; no estimating/acting golden workday has started and no golden lifecycle has passed. | +| Preflight | — | 1 | refrozen | Platform #520; frozen campaign `agent-golden-20260915` | Authorized role-specific criteria validate; objectives, dependencies, estimates, permissions, source bases, and final project gates are unchanged. | +| SDK | — | 0 | lifecycle in progress | Platform #520; protected eight-role send receipt | Corrected proposal revision 3 is published; estimating and acting acceptance are not yet proven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index b82e1cce..a53127ba 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -538,7 +538,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Frozen-input semantic review is tracked in `docs/agent-assignments.md`; no separate provider architecture blocker is known. +- No active provider architecture blocker is known; proposal refreeze and graph acceptance are tracked in `docs/agent-assignments.md`. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 4a56964f..ab982504 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The unchanged SDK draft has eight source-grounded discussion responses. Component tests pass, but the frozen campaign's work-item criteria fail semantic validation; no complete golden lifecycle has passed. Evidence remains in Platform #520. +- The SDK draft has eight source-grounded discussion responses. Authorized role-specific acceptance criteria are refrozen and published as proposal revision 3; no complete golden lifecycle has passed. Evidence remains in Platform #520. ### Current active blocker -- Campaign review is required: frozen work-item criteria copy whole-project acceptance instead of each role's required product, making prerequisite reviews impossible before implementation. +- No active plan blocker is known; live estimating and downstream product acceptance remain unproven. ### Next acceptance milestone -- After the frozen-input correction is authorized, verify the single-round estimating correction, then resume the unchanged specified SDK product chain through final closeout. +- Verify six owner estimates and the independent Reviewer estimate, then execute the fixed SDK product chain through final closeout before API acceptance. ## Completion From 1d34c1765c1e9e9255767846cfbce33fc68dceb7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 11:01:43 -0400 Subject: [PATCH 341/501] docs: record stopped estimating attempt without crediting acceptance --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 40778dc3..94f18359 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -713,7 +713,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | refrozen | Platform #520; frozen campaign `agent-golden-20260915` | Authorized role-specific criteria validate; objectives, dependencies, estimates, permissions, source bases, and final project gates are unchanged. | -| SDK | — | 0 | lifecycle in progress | Platform #520; protected eight-role send receipt | Corrected proposal revision 3 is published; estimating and acting acceptance are not yet proven. | +| SDK | — | 1 | estimating retry pending | Platform #520; Agent proposal-scope regression tests | First estimating attempt stopped on incomplete proposal output; scope enforcement is repaired, but complete estimating and acting acceptance remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | From 7bb10e1d64cde91eaf3989435364ddc496507c23 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 11:17:37 -0400 Subject: [PATCH 342/501] docs: keep golden estimating frontier current --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 94f18359..34107a99 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -713,7 +713,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | refrozen | Platform #520; frozen campaign `agent-golden-20260915` | Authorized role-specific criteria validate; objectives, dependencies, estimates, permissions, source bases, and final project gates are unchanged. | -| SDK | — | 1 | estimating retry pending | Platform #520; Agent proposal-scope regression tests | First estimating attempt stopped on incomplete proposal output; scope enforcement is repaired, but complete estimating and acting acceptance remain unproven. | +| SDK | — | 3 | estimating in progress | Platform #520; Agent proposal-scope/provenance regressions | Full-proposal scope and immutable evidence references are enforced; complete seven-role estimating and acting acceptance remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | From 82cd2e1a3edef64e6718f7520f5eddaa8ff04b50 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 11:19:39 -0400 Subject: [PATCH 343/501] docs: record frozen SDK budget review boundary --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 34107a99..ebb05518 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -713,7 +713,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | refrozen | Platform #520; frozen campaign `agent-golden-20260915` | Authorized role-specific criteria validate; objectives, dependencies, estimates, permissions, source bases, and final project gates are unchanged. | -| SDK | — | 3 | estimating in progress | Platform #520; Agent proposal-scope/provenance regressions | Full-proposal scope and immutable evidence references are enforced; complete seven-role estimating and acting acceptance remain unproven. | +| SDK | — | 3 | PLAN_REVIEW_REQUIRED | Platform #520; source-grounded Engineer estimate | Engineer requires 900/1500/3000 seconds versus frozen 600/1200/2400; attempt stopped without changing inputs. Full estimating and acting acceptance remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a53127ba..75fe77bf 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -538,7 +538,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active provider architecture blocker is known; proposal refreeze and graph acceptance are tracked in `docs/agent-assignments.md`. +- No active provider architecture blocker is known; the frozen proposal budget review is tracked in `docs/agent-assignments.md`. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index ab982504..3f8ec18b 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No active plan blocker is known; live estimating and downstream product acceptance remain unproven. +- PLAN_REVIEW_REQUIRED: the source-grounded SDK Engineer estimate exceeds the frozen implementation budget; the attempt is stopped pending budget review (Platform #520). ### Next acceptance milestone -- Verify six owner estimates and the independent Reviewer estimate, then execute the fixed SDK product chain through final closeout before API acceptance. +- Resolve the frozen budget review, verify all seven estimates, then execute the SDK product chain through final closeout before API acceptance. ## Completion From 66edf4a0feda01e41710e0df5439ef36b5780324 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 13:30:02 -0400 Subject: [PATCH 344/501] docs: make integrated capacity allocation the acceptance prerequisite --- docs/agent-architecture.md | 46 +++++++++++++++++++++++--------------- docs/agent-assignments.md | 4 ++-- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 75fe77bf..a1b16b8f 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -333,27 +333,33 @@ A single predecessor commit may be the next assignment's base. When several pred ```yaml durationSeconds: 28800 maximumConcurrency: 8 -planningSecondsPerAgent: 900 +planningPercent: 20 +allocationWeight: 1 +planningTurnMaximumSeconds: 180 communicationConcurrency: 1 -projectWeights: - sdk: 4 - api: 3 -agentClassWeights: - engineer: 4 - reviewer: 2 - reporter: 1 +projectPercentages: + sdk: 60 + api: 40 +agentClassPercentages: + sdk: + engineer: 60 + reviewer: 30 + reporter: 10 + api: + engineer: 60 + reviewer: 30 + reporter: 10 ``` Do not add allocation sets, minimum/target/maximum tiers, priority bands, borrow rules, a generic reserve, or separate capacity-plan and demand records. ### Planning phase -Every eligible participating agent receives `planningSecondsPerAgent` before proposal-driven work is admitted. The initial implementation has exactly two rounds: +Planning uses the first `planningPercent` of wall-clock duration and allocated capacity. Repeated short turns follow activity dependencies, give eligible agents equal turn ceilings, and load previous contributions through TreeDX. Class/project percentages govern opportunity frequency. Planning requires no existing proposal and admits no implementation, deployment, or release. Estimates are authored during planning; proposals may originate in any authorized activity. At the phase boundary, stop unfinished planning turns and release unused capacity to acting/review. -1. self-directed study, questions, proposals, and estimates; -2. collaboration using accepted first-round contributions. +Provider-owned capability caps and a shared execution-provider/model cap bound every workday. Normalize active workday weights (default 1), preserve existing reservations, and redistribute idle project/class target shares only to admissible graph-ready work. Both production and simulation consume real supply. Charge active harness/model/tool time, including model-backed preparation and closeout; record infrastructure setup, queueing, and teardown separately. -Round count is not configurable initially. Unused planning time joins the ordinary execution pool only after every selected agent completes, exhausts, or becomes explicitly ineligible. +Cold-start acting uses the task's maximum estimate, bounded by provider limits and available allocations. Replay the latest 20 eligible measurements within the same provider/model, capability, class, and activity, normalized by expected task duration. Successful completion targets 1.25 times observed duration with at most 10% downward adjustment per sample; expiration increases allocation by at least 25%. Other failure classes do not calibrate task duration. Insufficient viable capacity defers work without changing the graph. The read-only `workday plan` operation and mutating `workday start` use the same compiler. The workday stores the applied plan rather than creating another scheduling authority. @@ -365,7 +371,7 @@ Workday lifecycle is: planned → active → closing → ended ``` -- `active` admits planning, communication, and ordinary ready nodes. +- `active` admits phase-eligible graph nodes and addressed communication; acting waits until the planning boundary. - `closing` stops ordinary admissions and satisfies the `workday-closing` condition. - Reporter and any required settlement/closeout nodes run during closing. - `ended` is reached only after required closeout nodes finish and usage settles. @@ -461,18 +467,22 @@ Acceptance: ### Phase 4 — Workday planning and fair capacity - [x] Implement `workday plan` and `workday start` with one shared compiler. -- [x] Guarantee every eligible agent self-directed planning time and two planning rounds. +- [ ] Guarantee repeated dependency-ordered planning turns within the planning percentage/window; fixed two-round evidence does not prove this replacement requirement. - [ ] Admit ready graph nodes directly; create no capacity-plan or demand records. - [ ] Implement project and agent-class weighted fairness with stable ties and automatic idle-share flow. - [ ] Implement provider-global team fairness and hard provider-native gates. +- [ ] Enforce UTC-day capability and shared model caps at provider and atomic API admission, including restart/monotonic-report safety. +- [ ] Allocate concurrent workdays by weight, then phase/project/class shares, preserving reservations and redistributing only idle opportunities. +- [ ] Calibrate task budgets from scoped terminal usage, including censored timeouts, and issue one active duration/deadline through AgentKernel. +- [ ] Replace fixed planning/profile contracts in SDK/API/CLI/schema and remove the retired allocator without compatibility paths. - [x] Implement active → closing → ended lifecycle and derive closeout capacity from required closeout estimates. - [ ] Keep communication concurrency independent from ordinary work. - [ ] Settle every attempt exactly once and expose allocation explanations through the CLI. Acceptance: -- [x] A zero-proposal workday gives every participating agent planning work and can create new proposals. -- [x] Second-round assignments can use accepted first-round contributions. +- [ ] A zero-proposal workday gives every participating agent allocation-derived repeated planning opportunities and can create new proposals; earlier fixed-round evidence is insufficient. +- [ ] Later planning cycles load prior published contributions through TreeDX; earlier second-round evidence does not prove repeating cycles. - [ ] Mid-workday content changes add eligible work without restarting the workday. - [ ] Multi-project, multi-class, multi-team, retries, failures, idle share, and stable ties pass deterministic tests. - [x] Reporter runs during closing and the workday ends only after report completion and settlement. @@ -538,11 +548,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active provider architecture blocker is known; the frozen proposal budget review is tracked in `docs/agent-assignments.md`. +- The living-graph reservation path bypasses allocation admission; capability/model accounting, repeated planning, and calibrated task budgets must be integrated before golden acceptance. ### Next acceptance milestone -- Run every SDK activity and all six reviewed work items through isolated provider execution during the unchanged SDK golden proposal. +- Prove allocator-derived planning and acting budgets, provider enforcement, settlement, and concurrent workday sharing locally; then resume the lifecycle in `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 3f8ec18b..93fd4cb7 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- PLAN_REVIEW_REQUIRED: the source-grounded SDK Engineer estimate exceeds the frozen implementation budget; the attempt is stopped pending budget review (Platform #520). +- Golden execution is paused until the integrated allocation prerequisite in `agent-architecture.md` is proven; manually prescribed assignment budgets are not acceptance evidence. ### Next acceptance milestone -- Resolve the frozen budget review, verify all seven estimates, then execute the SDK product chain through final closeout before API acceptance. +- After allocation acceptance, refreeze allocation rules rather than estimate triples and prove the unchanged SDK proposal → Actor → Reviewer → revision → re-review → approval path. ## Completion From fba6cc1b589522d43ca9eed22f029ec00715819b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 13:51:47 -0400 Subject: [PATCH 345/501] docs(capacity): align allocation policy and repeated planning contract --- docs/agent-architecture.md | 2 +- docs/agent.schema.yml | 38 ++++++++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a1b16b8f..1f1e73ca 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,7 +544,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Eight SDK chat roles have unique Kata assignments, observed usage, successful first/final clock checks, and verified teardown; this does not prove their other activities. Evidence remains in Platform #520. +- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Source contracts now support percentage/weighted allocation, repeated dependency-ordered planning cycles, and reserved-plus-active fairness; component tests do not prove live allocation enforcement. Evidence remains in Platform #520. ### Current active blocker diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 200bc047..57fdbcbb 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -37,7 +37,7 @@ $comment: >- must additionally enforce ordered estimate bounds; unique work-item IDs; local, acyclic dependencies; requested permissions within profile and policy ceilings; exact current authority refs; deterministic node/edge identity; - one active assignment per node revision; two ordered planning rounds; bounded + one active assignment per node revision; repeated dependency-ordered planning cycles; bounded review cycles; immutable assignment inputs; and exactly-once settlement. # A document validated at the root must be exactly one stored record type. @@ -1165,33 +1165,44 @@ $defs: required: - durationSeconds - maximumConcurrency - - planningSecondsPerAgent + - planningPercent + - allocationWeight + - planningTurnMaximumSeconds - communicationConcurrency - - projectWeights - - agentClassWeights + - projectPercentages + - agentClassPercentages properties: durationSeconds: $ref: "#/$defs/PositiveSeconds" maximumConcurrency: type: integer minimum: 1 - planningSecondsPerAgent: + planningTurnMaximumSeconds: $ref: "#/$defs/PositiveSeconds" + planningPercent: + type: number + minimum: 0 + maximum: 100 + default: 20 + allocationWeight: + type: number + exclusiveMinimum: 0 + default: 1 communicationConcurrency: type: integer minimum: 1 - projectWeights: + projectPercentages: type: object - minProperties: 1 additionalProperties: type: number exclusiveMinimum: 0 - agentClassWeights: + agentClassPercentages: type: object - minProperties: 1 additionalProperties: - type: number - exclusiveMinimum: 0 + type: object + additionalProperties: + type: number + exclusiveMinimum: 0 additionalProperties: false AvailabilityWindow: @@ -1223,7 +1234,8 @@ $defs: required: [round, state, assignmentIds] properties: round: - enum: [1, 2] + type: integer + minimum: 1 state: enum: [pending, active, complete] assignmentIds: @@ -1631,8 +1643,6 @@ $defs: $ref: "#/$defs/Timestamp" planningRounds: type: array - minItems: 2 - maxItems: 2 items: $ref: "#/$defs/PlanningRound" admittedSecondsByProject: From e4dfe0a751bd60da1ad7c30be8eadbcc17b071f8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 14:30:04 -0400 Subject: [PATCH 346/501] docs: refreeze acceptance inputs around real workday allocations --- docs/agent-acceptance.md | 70 ++++++++++++++++++++++++++------------ docs/agent-architecture.md | 4 +-- docs/agent.schema.yml | 20 +++++++++-- 3 files changed, 68 insertions(+), 26 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index ebb05518..a0859957 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -47,7 +47,7 @@ The first two proposals are SDK and API because they exercise the portable contr ### Required contract correction -The current `Workday` definition in `docs/agent.schema.yml` has no execution-mode field, while existing runtime records have already demonstrated contradictory workday and assignment labels. Before Stage 0 can pass, add one required `Workday.executionMode` with supported values `simulation` and `production`. It is the sole mode authority. The immutable assignment identifies its workday and receives the exact grants, remotes, workspace, and provider instructions compiled for that mode; it does not own another independently mutable mode field. +`Workday.executionMode` is required with supported values `simulation` and `production`. It is the sole mode authority. The immutable assignment identifies its workday and receives the exact grants, remotes, workspace, and provider instructions compiled for that mode; it does not own another independently mutable mode field. Stage 0 must verify this existing contract end to end. For `simulation`, grant compilation must remove every upstream or external mutation capability and replace writable Git destinations with the local simulation repository. For `production`, ordinary governed authority applies. Do not add compatibility aliases, separate run mode, assignment mode, provider mode, or result mode. @@ -64,9 +64,35 @@ Before the first run, create one acceptance campaign record outside the product - exact governed agent-profile refs; - exact workday-policy revision; - provider offer revision; -- the proposal IDs and exact draft and ready proposal bytes defined here. +- the proposal IDs and exact draft bytes, fixed work-item topology and acceptance criteria, and subsequently the ready proposal bytes containing genuine agent estimates. -The campaign manifest is test configuration, not a new control-plane resource. Once frozen, subject repository bases and both expected proposal revisions do not change during retries. Runtime-under-test builds may change as defects are repaired; every run records their new exact digests. +The campaign manifest is test configuration, not a new control-plane resource. Once frozen, subject repository bases, proposal objectives, work-item topology, permissions and acceptance criteria do not change during retries. Agent estimates are measured planning outputs, not prescribed inputs. Record each ready revision/digest and its contributing estimating results; do not coerce estimates to make a run pass. Runtime-under-test builds may change as defects are repaired; every run records their new exact digests. + +### High-level allocation inputs + +Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. Single-project runs use the following allocation inputs; joint SDK/API runs use `projectPercentages: {sdk: 50, api: 50}` with the same class percentages in each project. Portfolio runs use equal normalized project shares. + +```yaml +allocation: + planningPercent: 20 + allocationWeight: 1 + planningTurnMaximumSeconds: 180 + projectPercentages: {sdk: 100} + agentClassPercentages: + sdk: + architect: 12.5 + researcher: 12.5 + tester: 12.5 + engineer: 12.5 + technical-writer: 12.5 + releaser: 12.5 + reviewer: 12.5 + reporter: 12.5 +``` + +Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. + +Admission must explain weighted workday entitlement, the planning pool, project/class opportunity, scoped calibration measurements, viable task minimum, limiting constraint, active-duration reservation and hard deadline. Agent-authored estimate triples and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient viable capacity defers a node without changing its dependencies. At the phase boundary unused planning entitlement becomes acting/review capacity. ### Local Git custody @@ -100,15 +126,15 @@ Failed historical records remain auditable, but they cannot satisfy dependencies Every project follows the same lifecycle. The project sections below supply the exact project-specific request and expected products. 1. Submit the fixed proposal as `draft` with its objective, evidence, and six work items. -2. Open one proposal discussion addressed to Architect, Researcher, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter. +2. Start the simulation workday with the frozen high-level allocation policy, then open one proposal discussion addressed to Architect, Researcher, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter. Planning/estimating turns use ordinary graph admission against actual remaining supply. 3. Run one relevant `chat` probe for all eight project agents while the discussion is open. Chat must use the communication lane, must not inherit standing work dependencies, and must not create graph edges. 4. Collect one discussion contribution from each of the eight project agents. Contributions identify risks, questions, dependencies, verification, documentation, release, and reporting concerns without changing the fixed objective. -5. Run estimating assignments for Researcher, Architect, Tester, Engineer, Technical Writer, and Releaser work plus one Reviewer assignment covering all paired-review estimates. Every estimate contains `minimumSeconds`, `expectedSeconds`, `maximumSeconds`, and a rationale, with `minimum <= expected <= maximum`. -6. Update the same proposal to the exact `ready` form. The accepted estimates are the fixed estimates in this document; agent estimates must support them or the run stops for proposal review. +5. During allocator-driven planning, run estimating assignments for Researcher, Architect, Tester, Engineer, Technical Writer, and Releaser work plus one Reviewer assignment covering all paired-review estimates. Every estimate contains `minimumSeconds`, `expectedSeconds`, `maximumSeconds`, and a rationale, with `minimum <= expected <= maximum`. +6. Update the same proposal to `ready` using those genuine estimating outputs, preserving its fixed objective, topology, permissions and acceptance criteria. Record the exact ready revision/digest; differing estimate values are not a plan-review failure. 7. Resolve every question or gate. The proposal-governance Reviewer binds its disposition to the exact ready proposal revision and digest. 8. Create one classed `proposal` decision accepting that exact proposal. No decision may carry a separate plan, graph, role map, source commit, or capacity plan. 9. Reconcile the accepted content into the living team execution graph. -10. Start the simulation workday. Execute two planning rounds, ready project work, generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. +10. Continue the same simulation workday from repeated planning turns into ready project work, generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. The workday starts before planning/estimating, not after the estimates exist. Acting cannot begin during planning. If the current implementation cannot represent this lifecycle without an alternate assignment path or duplicate plan authority, stop. Do not simplify the acceptance case to match the implementation. @@ -120,7 +146,7 @@ These expectations apply to every project and are not repeated in each proposal. |---|---|---|---| | `chat` | All eight agents | Addressed message, exact subject refs, profile prompt and grant | One general result or discussion message that answers only the addressed question; no graph mutation | | `planning`, round 1 | All eight agents | Proposal, project objectives and knowledge, exact source base, own profile | Independent contribution from that agent's responsibility; questions use the core `question` model | -| `planning`, round 2 | Same eight agents | All eight exact round-1 results plus unchanged source context | A synthesis that explicitly cites consumed predecessor result IDs and identifies any changed recommendation | +| `planning`, later cycles | Same eight agents | Prior published contributions plus unchanged source context | A synthesis that explicitly cites consumed predecessor result IDs and identifies any changed recommendation | | `estimating` | Six work owners plus Reviewer | Exact work item, acceptance criteria, dependencies, workspace and grants | Valid estimate triple and rationale; Reviewer estimates each generated review independently | | `acting` | Researcher, Architect, Tester, Engineer, Technical Writer, Releaser | Immutable assignment, exact proposal/decision, predecessor results, profile, grant, base and deadline | One `AssignmentResult` with ordinary TreeDX or Git refs, verification, non-zero observed usage when time elapsed, diagnostics and two clock checks | | `reviewing` | Reviewer only | Exact objective, acceptance criteria, candidate result/ref, verification and immutable source authority | Notes/questions as needed and one classed `work-review` decision bound to the exact candidate; Reviewer never mutates it | @@ -137,7 +163,7 @@ These expectations apply to every project and are not repeated in each proposal. - Reviewer: ambiguity, authority, security, correctness, and evidence weaknesses. - Reporter: evidence completeness, expected workday narrative, accounting checks, and closeout omissions that must prevent acceptance. -Round 2 must prove collaboration by consuming all eight round-1 results. Merely receiving them in context is insufficient; the result must identify the material contribution consumed from each. +At least two complete cycles must prove collaboration by consuming the preceding cycle's eight results. Merely receiving them in context is insufficient; the result must identify the material contribution consumed from each. Two cycles are a minimum acceptance observation, not a fixed runtime round limit. Turns follow standing dependencies and fit within their allocator-issued active duration; no implementation, deployment or release is permitted during planning. ## Common proposal work-item contract @@ -162,16 +188,16 @@ The shorthand in this document must be expanded into the actual schema before su ### Fixed work-item graph -| ID | Class | Workspace | Depends on | Estimate min/expected/max | Review estimate | Review cycles | -|---|---|---|---|---:|---:|---:| -| `research-context` | Researcher | `treedx` | none | 180/360/720 | 120/240/480 | 2 | -| `architecture-contract` | Architect | `treedx` | none | 300/600/1200 | 120/240/480 | 2 | -| `tests-first` | Tester | `git` | `research-context`, `architecture-contract` | 300/600/1200 | 120/240/480 | 2 | -| `implement-change` | Engineer | `git` | `tests-first` | 600/1200/2400 | 180/360/720 | 2 | -| `document-change` | Technical Writer | `git` | `tests-first`, `implement-change` | 180/360/720 | 120/240/480 | 2 | -| `simulate-release` | Releaser | `git` | `implement-change`, `document-change` | 180/360/720 | 120/240/480 | 2 | +| ID | Class | Workspace | Depends on | Review cycles | +|---|---|---|---|---:| +| `research-context` | Researcher | `treedx` | none | 2 | +| `architecture-contract` | Architect | `treedx` | none | 2 | +| `tests-first` | Tester | `git` | `research-context`, `architecture-contract` | 2 | +| `implement-change` | Engineer | `git` | `tests-first` | 2 | +| `document-change` | Technical Writer | `git` | `tests-first`, `implement-change` | 2 | +| `simulate-release` | Releaser | `git` | `implement-change`, `document-change` | 2 | -Every row has `activity: acting`, `review: required`, a non-empty project-specific objective, the estimate and review estimate above, `maximumReviewCycles: 2`, exact `contextRefs`, requested permissions, required capabilities, and project-specific acceptance criteria. +Every ready row has `activity: acting`, `review: required`, a non-empty project-specific objective, its owner's genuine estimate and the Reviewer's genuine review estimate, `maximumReviewCycles: 2`, exact `contextRefs`, requested permissions, required capabilities, and project-specific acceptance criteria. Draft intake must support estimating before those values exist; fabricating seed estimates does not satisfy acceptance. Reconciliation generates one Reviewer node for each row. Generated Reviewer nodes are not written into the proposal. A downstream work item becomes ready only after the predecessor's exact review decision is approved. @@ -650,8 +676,8 @@ A project passes only when all checks below are evidenced from authoritative rec ### Profiles and collaboration - [ ] All eight chat probes use exact addressed context and create no workflow edges. -- [ ] All eight agents complete both planning rounds; round 2 materially cites all eight round-1 results. -- [ ] Seven valid estimating results support the accepted fixed estimates. +- [ ] All eight agents complete at least two bounded, dependency-ordered planning cycles; later turns materially cite all eight predecessor contributions. +- [ ] Seven valid estimating results supply the accepted owner/review estimates without manually prescribed allocation values. - [ ] Researcher, Architect, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter all perform their distinct responsibilities. - [ ] Tester authors the tests before Engineer implementation; Engineer consumes the approved Tester result rather than replacing it. @@ -712,8 +738,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 1 | refrozen | Platform #520; frozen campaign `agent-golden-20260915` | Authorized role-specific criteria validate; objectives, dependencies, estimates, permissions, source bases, and final project gates are unchanged. | -| SDK | — | 3 | PLAN_REVIEW_REQUIRED | Platform #520; source-grounded Engineer estimate | Engineer requires 900/1500/3000 seconds versus frozen 600/1200/2400; attempt stopped without changing inputs. Full estimating and acting acceptance remain unproven. | +| Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | +| SDK | — | 3 | allocation prerequisite pending | Platform #520 | Historical fixed-budget attempts are diagnostics only; no complete golden lifecycle has passed. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1f1e73ca..3a2de77a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Source contracts now support percentage/weighted allocation, repeated dependency-ordered planning cycles, and reserved-plus-active fairness; component tests do not prove live allocation enforcement. Evidence remains in Platform #520. +- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Component tests cover percentage/weighted allocation, repeated planning, cold-start task sizing, reservation explanations, one productive deadline, and durable provider accounting; live supply enforcement remains unproven. Evidence remains in Platform #520. ### Current active blocker -- The living-graph reservation path bypasses allocation admission; capability/model accounting, repeated planning, and calibrated task budgets must be integrated before golden acceptance. +- Admission now uses calculated task duration, but shared capability/model supply, scoped calibration history, concurrent workday entitlement, and phase-boundary cancellation are not yet integrated end to end. ### Next acceptance milestone diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 57fdbcbb..0ef9b317 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -469,7 +469,6 @@ $defs: - workspace - review - objective - - estimate - dependsOn - requestedPermissions - acceptanceCriteria @@ -524,7 +523,7 @@ $defs: required: [review] then: type: object - required: [reviewEstimate, maximumReviewCycles] + required: [maximumReviewCycles] - if: type: object properties: @@ -785,6 +784,23 @@ $defs: then: type: object required: [summary, executionPlan] + properties: + executionPlan: + type: object + properties: + workItems: + type: array + items: + type: object + required: [estimate] + allOf: + - if: + properties: + review: + const: required + required: [review] + then: + required: [reviewEstimate] additionalProperties: false Question: From f4d41af65f3785d2b47b61164625174043bec4fe Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 15:19:42 -0400 Subject: [PATCH 347/501] Freeze capability-specific supply naming and record allocation acceptance gaps --- docs/agent-acceptance.md | 2 ++ docs/agent-architecture.md | 4 ++-- docs/agent.schema.yml | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index a0859957..670fc1a2 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -92,6 +92,8 @@ allocation: Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. +For this local campaign, configure `codex-research` with Sol/Medium and a 7,200-active-second daily cap, and `codex-implementation` with Terra/Medium and a 28,800-active-second daily cap. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. + Admission must explain weighted workday entitlement, the planning pool, project/class opportunity, scoped calibration measurements, viable task minimum, limiting constraint, active-duration reservation and hard deadline. Agent-authored estimate triples and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient viable capacity defers a node without changing its dependencies. At the phase boundary unused planning entitlement becomes acting/review capacity. ### Local Git custody diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3a2de77a..e9cb108b 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Persistent development mode runs SDK, API, Agent, and TreeDX sources. Component tests cover percentage/weighted allocation, repeated planning, cold-start task sizing, reservation explanations, one productive deadline, and durable provider accounting; live supply enforcement remains unproven. Evidence remains in Platform #520. +- Component tests cover weighted allocation, repeated planning, task sizing, one productive deadline, and durable provider accounting. Real PostgreSQL verifies atomic capability/model admission and replay. Capability-specific `codex-research` and `codex-implementation` share the Codex harness; live configuration and golden acceptance remain unproven. Evidence remains in Platform #520. ### Current active blocker -- Admission now uses calculated task duration, but shared capability/model supply, scoped calibration history, concurrent workday entitlement, and phase-boundary cancellation are not yet integrated end to end. +- Live cutover, monotonic supply reconciliation, scoped calibration, concurrent entitlement, and phase-boundary cancellation remain unverified end to end; no golden lifecycle has passed. ### Next acceptance milestone diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 0ef9b317..ce0bc61b 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1894,12 +1894,18 @@ $defs: ProviderOfferSelection: type: object - required: [providerId, offerId, offerRevision, runtimeBuild] + required: [providerId, offerId, executionProviderId, modelConfigurationId, executionCapabilityId, offerRevision, runtimeBuild] properties: providerId: $ref: "#/$defs/Identifier" offerId: $ref: "#/$defs/Identifier" + executionProviderId: + $ref: "#/$defs/Identifier" + modelConfigurationId: + $ref: "#/$defs/Identifier" + executionCapabilityId: + $ref: "#/$defs/Identifier" offerRevision: type: integer minimum: 1 From 43fdbd6c5b9386d71776260fc275c212ba4ad381 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 15:54:03 -0400 Subject: [PATCH 348/501] Keep allocation acceptance frontier explicit during managed recovery --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index e9cb108b..254aaa34 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -548,7 +548,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Live cutover, monotonic supply reconciliation, scoped calibration, concurrent entitlement, and phase-boundary cancellation remain unverified end to end; no golden lifecycle has passed. +- Live cutover is blocked by PostgreSQL component activation/recovery; the manager retains its development hold. After recovery, monotonic supply reconciliation, scoped calibration, concurrent entitlement, and phase-boundary cancellation still require integrated acceptance (Platform #520). ### Next acceptance milestone From 6bacc4a0495f7342d5269cc6ab14e96dc61d4acc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 16:34:46 -0400 Subject: [PATCH 349/501] Keep live recovery acceptance gap explicit in architecture plan --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 254aaa34..3d108abb 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -548,7 +548,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Live cutover is blocked by PostgreSQL component activation/recovery; the manager retains its development hold. After recovery, monotonic supply reconciliation, scoped calibration, concurrent entitlement, and phase-boundary cancellation still require integrated acceptance (Platform #520). +- Live cutover is blocked by recovery of the development API and its held operations writer; released writers must not restart against the development migration inventory. Exact-image ownership and restored credential-mount refresh require live acceptance. Allocation/reporting, calibration, concurrent entitlement, and phase-boundary cancellation still require integrated acceptance (Platform #520). ### Next acceptance milestone From 89768205b92d076fe7d8b3c32e3ba6714dc1ca1e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 17:08:09 -0400 Subject: [PATCH 350/501] docs: record current capability cutover acceptance gap --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3d108abb..55c712a4 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -548,7 +548,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Live cutover is blocked by recovery of the development API and its held operations writer; released writers must not restart against the development migration inventory. Exact-image ownership and restored credential-mount refresh require live acceptance. Allocation/reporting, calibration, concurrent entitlement, and phase-boundary cancellation still require integrated acceptance (Platform #520). +- Capability-configuration cutover exposed rejection of an ordinary, intentionally held development writer during PostgreSQL health checking. The repair passes 36 focused tests and type-checking; managed update acceptance remains pending. Cross-session monotonicity, UTC-day settlement, calibration, concurrent entitlement, and phase-boundary cancellation remain unproven (Platform #520). ### Next acceptance milestone From 1b7a4300f9aea9c730534f06046c5cd359404608 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 17:25:04 -0400 Subject: [PATCH 351/501] docs: record verified live capability supply and remaining allocation gates --- docs/agent-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 55c712a4..5bf00ac5 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Component tests cover weighted allocation, repeated planning, task sizing, one productive deadline, and durable provider accounting. Real PostgreSQL verifies atomic capability/model admission and replay. Capability-specific `codex-research` and `codex-implementation` share the Codex harness; live configuration and golden acceptance remain unproven. Evidence remains in Platform #520. +- Component tests cover weighted allocation, repeated planning, task sizing, productive deadlines, and durable provider accounting; PostgreSQL checks cover admission and replay. Managed cutover and CLI read-back verify active `codex-research` (Sol/Medium, 7,200 daily seconds) and `codex-implementation` (Terra/Medium, 28,800), using the shared Codex harness with healthy accounting observations. No golden lifecycle has passed (Platform #520). ### Current active blocker -- Capability-configuration cutover exposed rejection of an ordinary, intentionally held development writer during PostgreSQL health checking. The repair passes 36 focused tests and type-checking; managed update acceptance remains pending. Cross-session monotonicity, UTC-day settlement, calibration, concurrent entitlement, and phase-boundary cancellation remain unproven (Platform #520). +- No external blocker is active. Cross-session atomic monotonicity, UTC-day settlement and historical unattributed usage, real timeout settlement, concurrent entitlement, and phase-boundary cancellation still require complete implementation/acceptance; component tests do not prove these integrated boundaries (Platform #520). ### Next acceptance milestone From 735ef93f54501375e9453bb1d4e200f0a95e790e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 17:35:07 -0400 Subject: [PATCH 352/501] docs: record provider accounting race proof without broad acceptance claims --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 5bf00ac5..889d101a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -548,7 +548,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No external blocker is active. Cross-session atomic monotonicity, UTC-day settlement and historical unattributed usage, real timeout settlement, concurrent entitlement, and phase-boundary cancellation still require complete implementation/acceptance; component tests do not prove these integrated boundaries (Platform #520). +- No external blocker is active. Provider-scoped observation/publication passed a real PostgreSQL cross-membership race regression. UTC-day settlement and historical unattributed usage, real timeout settlement, concurrent entitlement, and phase-boundary cancellation still require complete implementation/acceptance (Platform #520). ### Next acceptance milestone From 09722ae0199818ed4461baee03cc579c78827912 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 18:06:00 -0400 Subject: [PATCH 353/501] docs(agents): record terminal accounting gate without claiming golden acceptance --- docs/agent-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 889d101a..7d95aec1 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Component tests cover weighted allocation, repeated planning, task sizing, productive deadlines, and durable provider accounting; PostgreSQL checks cover admission and replay. Managed cutover and CLI read-back verify active `codex-research` (Sol/Medium, 7,200 daily seconds) and `codex-implementation` (Terra/Medium, 28,800), using the shared Codex harness with healthy accounting observations. No golden lifecycle has passed (Platform #520). +- Component tests cover weighted allocation, repeated planning, task sizing, productive deadlines, and durable provider accounting. API `ee965b62` passes 27 focused tests including PostgreSQL timeout/admission/publication races; Agent `47aefb5` preserves failed/returned execution usage. Live supply is `codex-research` (Sol/Medium, 7,200 daily seconds) and `codex-implementation` (Terra/Medium, 28,800), sharing the Codex harness. No golden lifecycle has passed (Platform #520). ### Current active blocker -- No external blocker is active. Provider-scoped observation/publication passed a real PostgreSQL cross-membership race regression. UTC-day settlement and historical unattributed usage, real timeout settlement, concurrent entitlement, and phase-boundary cancellation still require complete implementation/acceptance (Platform #520). +- No external blocker is active. Timeout settlement and UTC-bound deadline custody pass component/PostgreSQL gates; live weighted concurrent entitlement, phase-boundary cancellation, daily/restart accounting, and genuine golden workday settlement/teardown remain unproven (Platform #520). ### Next acceptance milestone From 4f0058c40eae834a2dafab2bf1103f69108e3149 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 18:38:22 -0400 Subject: [PATCH 354/501] Keep allocation acceptance boundary honest and require automatic genuine estimates --- docs/agent-acceptance.md | 6 ++++-- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 670fc1a2..8ddab498 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -96,6 +96,8 @@ For this local campaign, configure `codex-research` with Sol/Medium and a 7,200- Admission must explain weighted workday entitlement, the planning pool, project/class opportunity, scoped calibration measurements, viable task minimum, limiting constraint, active-duration reservation and hard deadline. Agent-authored estimate triples and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient viable capacity defers a node without changing its dependencies. At the phase boundary unused planning entitlement becomes acting/review capacity. +Selecting a governed proposal must automatically generate estimating turns for its work owners and Reviewer through the ordinary graph, after planning contributions. Do not require an operator activity override to obtain genuine estimates. Without a selected proposal, autonomous planning remains valid and no subjectless estimating work is generated. + ### Local Git custody For each project and run, the provider creates a disposable checkout from the campaign's exact upstream base and a local bare simulation repository: @@ -225,7 +227,7 @@ Reconciliation generates one Reviewer node for each row. Generated Reviewer node ### Reporter selection -Each workday has exactly one closeout Reporter and one `Workday.reportRef`. Individual project runs use that project's Reporter. The SDK/API joint run uses `sdk/reporter`; the all-project run uses `platform/reporter`. The applied workday plan records this selection before activation. Other participating Reporter agents still perform chat and both planning rounds, but reconciliation must not create duplicate project reports or a second summary layer. +Each workday has exactly one closeout Reporter and one `Workday.reportRef`. Individual project runs use that project's Reporter. The SDK/API joint run uses `sdk/reporter`; the all-project run uses `platform/reporter`. The applied workday plan records this selection before activation. Other participating Reporter agents still perform chat and repeated planning cycles, but reconciliation must not create duplicate project reports or a second summary layer. ## Project golden proposals @@ -696,7 +698,7 @@ A project passes only when all checks below are evidenced from authoritative rec ### Workday, capacity, and cleanup -- [ ] Both planning rounds are terminal and list their exact assignment IDs. +- [ ] All admitted planning turns are terminal and list their exact assignment IDs; at least two complete collaborative cycles are proven. - [ ] Admitted seconds by project and agent class are populated and agree with reservations/results. - [ ] Assignment elapsed usage agrees with timestamps within an explained tolerance; visibly elapsed work is not stored as zero. - [ ] Every attempt has exactly one UsageSettlement, including failed controlled attempts. diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7d95aec1..67e4dd74 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Component tests cover weighted allocation, repeated planning, task sizing, productive deadlines, and durable provider accounting. API `ee965b62` passes 27 focused tests including PostgreSQL timeout/admission/publication races; Agent `47aefb5` preserves failed/returned execution usage. Live supply is `codex-research` (Sol/Medium, 7,200 daily seconds) and `codex-implementation` (Terra/Medium, 28,800), sharing the Codex harness. No golden lifecycle has passed (Platform #520). +- SDK allocation contracts are merged to staging. API component/PostgreSQL gates and the Agent full suite pass; a real SDK workday completed all eight first-cycle planning turns with measured usage and two clock checks, then generated a second cycle. Selected proposals now automatically generate ordinary estimating turns after planning contributions; that integrated replacement is not yet accepted. Live supply remains research (Sol/Medium, 7,200 daily seconds) and implementation (Terra/Medium, 28,800), sharing Codex. No golden lifecycle has passed (Platform #520). ### Current active blocker -- No external blocker is active. Timeout settlement and UTC-bound deadline custody pass component/PostgreSQL gates; live weighted concurrent entitlement, phase-boundary cancellation, daily/restart accounting, and genuine golden workday settlement/teardown remain unproven (Platform #520). +- No external blocker is active. The next gate is automatic genuine estimate generation on the default workday path; full Actor/Reviewer completion, live weighted concurrent entitlement, phase-boundary cancellation, daily/restart accounting, and final settlement remain unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 93fd4cb7..5a3cde22 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,7 +436,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The SDK draft has eight source-grounded discussion responses. Authorized role-specific acceptance criteria are refrozen and published as proposal revision 3; no complete golden lifecycle has passed. Evidence remains in Platform #520. +- SDK proposal revision 4 preserves the role-specific requirements and removes operator-authored estimate triples through governed TreeDX publication. The allocation prerequisite owns current execution evidence (`agent-architecture.md`); no complete golden lifecycle has passed. Evidence remains in Platform #520. ### Current active blocker From 4600c2c2bae1912eb6a8d5e8b1567b1788d58b1b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 19:05:24 -0400 Subject: [PATCH 355/501] Keep allocation acceptance frontier evidence-based --- docs/agent-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 67e4dd74..aa7b2057 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK allocation contracts are merged to staging. API component/PostgreSQL gates and the Agent full suite pass; a real SDK workday completed all eight first-cycle planning turns with measured usage and two clock checks, then generated a second cycle. Selected proposals now automatically generate ordinary estimating turns after planning contributions; that integrated replacement is not yet accepted. Live supply remains research (Sol/Medium, 7,200 daily seconds) and implementation (Terra/Medium, 28,800), sharing Codex. No golden lifecycle has passed (Platform #520). +- SDK allocation contracts are merged to staging. API full local suite passes (1,035 tests); Agent strict typecheck and 141 tests pass. Default graph turns produced genuine source-grounded estimates through TreeDX, with clock checks and measured active usage. Live research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. ### Current active blocker -- No external blocker is active. The next gate is automatic genuine estimate generation on the default workday path; full Actor/Reviewer completion, live weighted concurrent entitlement, phase-boundary cancellation, daily/restart accounting, and final settlement remain unproven (Platform #520). +- No external blocker is active. The stopped SDK run exposed lost accounting token counters and invalid Reviewer verification; repairs pass local tests, but live read-back and the unchanged golden rerun remain pending. Concurrent entitlement, phase cancellation, recovery/rollover and final settlement are not yet accepted (Platform #520). ### Next acceptance milestone From 2c2f13dd33f41464cafca9f77eff142f702f325b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 19:44:41 -0400 Subject: [PATCH 356/501] Report allocation acceptance boundary without diagnostic history --- docs/agent-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index aa7b2057..7f1575df 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK allocation contracts are merged to staging. API full local suite passes (1,035 tests); Agent strict typecheck and 141 tests pass. Default graph turns produced genuine source-grounded estimates through TreeDX, with clock checks and measured active usage. Live research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. +- SDK/API allocation and bounded Reporter closeout are merged to staging. API's PostgreSQL-backed full local suite passes (1,050 tests); Agent strict typecheck and 142 tests pass. Live accounting returns active time and input/cached/output/reasoning tokens; a stopped workday closes through Reporter. Research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. ### Current active blocker -- No external blocker is active. The stopped SDK run exposed lost accounting token counters and invalid Reviewer verification; repairs pass local tests, but live read-back and the unchanged golden rerun remain pending. Concurrent entitlement, phase cancellation, recovery/rollover and final settlement are not yet accepted (Platform #520). +- No external blocker is active. Contradictory estimator instructions changed foreign estimates; the strict ownership guard rejected them. The prompt and productive-clock teardown boundary are repaired and tested; live rerun, concurrent sharing, phase cancellation and recovery/rollover acceptance remain pending (Platform #520). ### Next acceptance milestone From fa0668ccdcbe1a111da283bbd50921a9cdd55ef6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 20:22:28 -0400 Subject: [PATCH 357/501] docs: record integrated allocation acceptance boundary --- docs/agent-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7f1575df..c4c0b8dc 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK/API allocation and bounded Reporter closeout are merged to staging. API's PostgreSQL-backed full local suite passes (1,050 tests); Agent strict typecheck and 142 tests pass. Live accounting returns active time and input/cached/output/reasoning tokens; a stopped workday closes through Reporter. Research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. +- SDK/API allocation, single-path executor cleanup, graph operational-state fencing and bounded Reporter closeout are merged to staging. API's PostgreSQL-backed full local suite passes (1,051 tests); Agent strict typecheck and 142 tests pass. Live accounting returns active time and input/cached/output/reasoning tokens. Research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. ### Current active blocker -- No external blocker is active. Contradictory estimator instructions changed foreign estimates; the strict ownership guard rejected them. The prompt and productive-clock teardown boundary are repaired and tested; live rerun, concurrent sharing, phase cancellation and recovery/rollover acceptance remain pending (Platform #520). +- No external blocker is active. The repaired estimator, productive-clock and graph-state boundaries require the unchanged live SDK rerun; concurrent sharing, phase cancellation, recovery/rollover and remaining retired allocation-profile cleanup are not yet accepted (Platform #520). ### Next acceptance milestone From 868f9d78257c4609e310a3d6f307836ce34906ab Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 20:49:06 -0400 Subject: [PATCH 358/501] Align allocation acceptance with the canonical versioned team policy --- docs/agent-acceptance.md | 2 ++ docs/agent-architecture.md | 4 ++-- docs/agent.schema.yml | 10 +++------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 8ddab498..3f76f658 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -72,6 +72,8 @@ The campaign manifest is test configuration, not a new control-plane resource. O Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. Single-project runs use the following allocation inputs; joint SDK/API runs use `projectPercentages: {sdk: 50, api: 50}` with the same class percentages in each project. Portfolio runs use equal normalized project shares. +Use the team's canonical `default` policy (`--profile default`). Freeze its revision and the resolved workday snapshot. Update team defaults through version-checked `workdays profiles update default --input `; explicit workday allocation overrides do not change that policy or existing assignments. Repository allocation profiles, tiers, borrowing, and fixed assignment budgets are not campaign inputs. + ```yaml allocation: planningPercent: 20 diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index c4c0b8dc..00c2bb28 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK/API allocation, single-path executor cleanup, graph operational-state fencing and bounded Reporter closeout are merged to staging. API's PostgreSQL-backed full local suite passes (1,051 tests); Agent strict typecheck and 142 tests pass. Live accounting returns active time and input/cached/output/reasoning tokens. Research and implementation limits remain 7,200 and 28,800 daily seconds. No golden lifecycle has passed; exact evidence is in Platform #520. +- SDK's canonical team policy and allocation contracts are merged to staging. API's replacement removes repository profiles and retired lease authority; its PostgreSQL-backed local suite passes, including concurrent policy replacement and preserved metadata. No golden lifecycle has passed; exact refs, counts and live accounting evidence belong in Platform #520. ### Current active blocker -- No external blocker is active. The repaired estimator, productive-clock and graph-state boundaries require the unchanged live SDK rerun; concurrent sharing, phase cancellation, recovery/rollover and remaining retired allocation-profile cleanup are not yet accepted (Platform #520). +- No external blocker is active. API contract integration and managed activation precede the unchanged SDK rerun; concurrent sharing, phase cancellation and recovery/rollover remain unaccepted (Platform #520). ### Next acceptance milestone diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index ce0bc61b..bde5b4e4 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1510,14 +1510,12 @@ $defs: additionalProperties: false WorkdayPolicy: - # Small durable policy. No allocation tiers, reserve pools, or borrow rules. + # The team's single default policy, stored with team metadata and snapshotted by workdays. type: object - required: [schemaVersion, id, teamId, revision, policy, active] + required: [id, teamId, revision, policy] properties: - schemaVersion: - const: treeseed.workday-policy/v1 id: - $ref: "#/$defs/Identifier" + const: default teamId: $ref: "#/$defs/Identifier" revision: @@ -1525,8 +1523,6 @@ $defs: minimum: 1 policy: $ref: "#/$defs/WorkdayPolicyFields" - active: - type: boolean additionalProperties: false ProviderOffer: From 7d58fa0f10f514bdbbc15362d62fdc0e0efcb741 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 21:33:23 -0400 Subject: [PATCH 359/501] Keep allocation acceptance frontier current after managed migration --- docs/agent-architecture.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 00c2bb28..1bea6472 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,15 +544,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK's canonical team policy and allocation contracts are merged to staging. API's replacement removes repository profiles and retired lease authority; its PostgreSQL-backed local suite passes, including concurrent policy replacement and preserved metadata. No golden lifecycle has passed; exact refs, counts and live accounting evidence belong in Platform #520. +- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging; API, runner and provider are live. The unchanged SDK golden workday is exercising percentage-derived allocation. No golden lifecycle has passed; exact refs and evidence belong in Platform #520. ### Current active blocker -- No external blocker is active. API contract integration and managed activation precede the unchanged SDK rerun; concurrent sharing, phase cancellation and recovery/rollover remain unaccepted (Platform #520). +- No external blocker is active. Repeated collaborative planning, provider enforcement, concurrent sharing and recovery/rollover still require integrated acceptance (Platform #520). ### Next acceptance milestone -- Prove allocator-derived planning and acting budgets, provider enforcement, settlement, and concurrent workday sharing locally; then resume the lifecycle in `agent-assignments.md`. +- Complete the unchanged SDK lifecycle owned by `agent-assignments.md`, then API and concurrent simulation; verify allocation explanations, measured settlement and clean teardown throughout. ## Completion From 33525dfe68c79e31564d392447000f8b4bd6bb9f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 22:14:17 -0400 Subject: [PATCH 360/501] docs: distinguish allocation refreeze from golden acceptance --- docs/agent-acceptance.md | 4 ++-- docs/agent-architecture.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 3f76f658..29e99127 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -562,13 +562,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [x] Freeze the campaign manifest and exact proposal bytes. +- [ ] Refreeze the campaign manifest and exact proposal bytes against the integrated allocation runtime; the prior campaign predates capability accounting acceptance. - [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. - [x] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. -- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state. +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the allocation-refrozen campaign; prior baselines do not prove the current run's non-mutation boundary. ### Stage 1 — SDK alone diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1bea6472..8b103a2e 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,11 +544,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging; API, runner and provider are live. The unchanged SDK golden workday is exercising percentage-derived allocation. No golden lifecycle has passed; exact refs and evidence belong in Platform #520. +- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging; API, runner and provider are live. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed. Exact refs and evidence belong in Platform #520. ### Current active blocker -- No external blocker is active. Repeated collaborative planning, provider enforcement, concurrent sharing and recovery/rollover still require integrated acceptance (Platform #520). +- The current golden run stopped on missing mandatory clock calls; direct MCP presentation is under managed verification. No external/user-action blocker is active (Platform #520). ### Next acceptance milestone From f9c5b8d59361408dd1b45621a72c799b66cb2fb4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 22:28:26 -0400 Subject: [PATCH 361/501] docs: clear resolved mandatory clock blocker --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8b103a2e..fda5d10d 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -548,7 +548,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- The current golden run stopped on missing mandatory clock calls; direct MCP presentation is under managed verification. No external/user-action blocker is active (Platform #520). +- No active external blocker exists. Mandatory clock awareness passes on the live Kata guest; complete golden lifecycles, repeated collaboration and concurrent sharing remain unproven (Platform #520). ### Next acceptance milestone From de975ae18fd0a43fb4ccf652ebc7c10e9d7b18a6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 16 Sep 2026 23:34:15 -0400 Subject: [PATCH 362/501] Keep allocation plan frontier aligned with integrated workday communication --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index fda5d10d..e612d798 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,7 +544,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging; API, runner and provider are live. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed. Exact refs and evidence belong in Platform #520. +- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging. Parent-workday communication validates the existing frozen agent profiles, including selected chat activity. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. ### Current active blocker diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 5a3cde22..1ad596c9 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,7 +436,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK proposal revision 4 preserves the role-specific requirements and removes operator-authored estimate triples through governed TreeDX publication. The allocation prerequisite owns current execution evidence (`agent-architecture.md`); no complete golden lifecycle has passed. Evidence remains in Platform #520. +- SDK proposal revision 4 preserves the role-specific requirements and removes operator-authored estimate triples through governed TreeDX publication. Addressed communication now retains exact parent-run/invocation provenance without superseding or settling unrelated workdays. Allocation execution evidence belongs in `agent-architecture.md`; no complete golden lifecycle has passed (Platform #520). ### Current active blocker From 92442ec667732281360a96fce24a956a277a15d7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 00:54:08 -0400 Subject: [PATCH 363/501] docs: report active canonical allocation campaign without claiming acceptance --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 29e99127..7075d619 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | — | 3 | allocation prerequisite pending | Platform #520 | Historical fixed-budget attempts are diagnostics only; no complete golden lifecycle has passed. | +| SDK | workday-b924a482-351e-4dc2-a84a-57156a6535ca | 3 | allocation campaign in progress | Platform #520 | Canonical parent-workday chat and allocator-driven planning are running; prerequisite failures remain diagnostics, and no complete golden lifecycle has passed. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index e612d798..e348522e 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,7 +544,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging. Parent-workday communication validates the existing frozen agent profiles, including selected chat activity. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. +- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging. Parent-workday communication uses canonical send, API-resolved proposal context and the existing frozen chat profiles. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. ### Current active blocker From 7bc715652a30943c17a76c1d0cc4d6ccac8903d0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 01:32:23 -0400 Subject: [PATCH 364/501] docs(agents): keep allocation recovery and golden frontier accurate --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7075d619..e5316536 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-b924a482-351e-4dc2-a84a-57156a6535ca | 3 | allocation campaign in progress | Platform #520 | Canonical parent-workday chat and allocator-driven planning are running; prerequisite failures remain diagnostics, and no complete golden lifecycle has passed. | +| SDK | workday-88d82018-99f8-47ed-9dbf-fd06d3559a04 | 4 | allocation campaign in progress | Platform #520 | Retrying the unchanged proposal on the repaired live runtime; eight canonical chat targets and allocator-driven planning admitted. No complete golden lifecycle has passed. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index e348522e..cd92aa03 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -544,7 +544,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, truthful terminal accounting and managed migration are integrated on staging. Parent-workday communication uses canonical send, API-resolved proposal context and the existing frozen chat profiles. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. +- Canonical team policy, graph-only admission, terminal accounting and managed migration are integrated on staging. Parent-workday communication uses canonical send and frozen chat profiles; tool-relay failure containment and failed-report drain are repaired. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. ### Current active blocker From e99b99bec602f9264d508232f72c4cc958f4d77e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 02:17:47 -0400 Subject: [PATCH 365/501] Reconcile allocation intent, recurrence and truthful acceptance frontier --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 4 ++- docs/agent.schema.yml | 67 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index e5316536..26590d00 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-88d82018-99f8-47ed-9dbf-fd06d3559a04 | 4 | allocation campaign in progress | Platform #520 | Retrying the unchanged proposal on the repaired live runtime; eight canonical chat targets and allocator-driven planning admitted. No complete golden lifecycle has passed. | +| SDK | workday-88d82018-99f8-47ed-9dbf-fd06d3559a04 | 4 | stopped diagnostic attempt; golden not passed | Platform #520 | Drain settled cleanly; acting Writer content and remaining allocation contracts must be integrated before refreezing the unchanged proposal. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index cd92aa03..44e63821 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -353,6 +353,8 @@ agentClassPercentages: Do not add allocation sets, minimum/target/maximum tiers, priority bands, borrow rules, a generic reserve, or separate capacity-plan and demand records. +Manual and recurring workdays use one high-level intent and the same preflight/start admission path. Intent selects simulation or production custody; the resolved Workday remains the sole execution-mode authority. Recurrence retains canonical intent and existing receipts, not separate time tiers or manually supplied capacity. Allocation receipts expose weighted supply opportunities and the SDK selector's project/class deficits. + ### Planning phase Planning uses the first `planningPercent` of wall-clock duration and allocated capacity. Repeated short turns follow activity dependencies, give eligible agents equal turn ceilings, and load previous contributions through TreeDX. Class/project percentages govern opportunity frequency. Planning requires no existing proposal and admits no implementation, deployment, or release. Estimates are authored during planning; proposals may originate in any authorized activity. At the phase boundary, stop unfinished planning turns and release unused capacity to acting/review. @@ -544,7 +546,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, terminal accounting and managed migration are integrated on staging. Parent-workday communication uses canonical send and frozen chat profiles; tool-relay failure containment and failed-report drain are repaired. Role-owned estimating outputs are proven, but no complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. +- Canonical team policy, graph-only admission, terminal accounting and managed migration are integrated on staging; governed acting Writer outputs are repaired. Recurring-intent migration, explicit custody selection and allocation explanations are under integration. No complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. ### Current active blocker diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index bde5b4e4..545ca373 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -59,6 +59,7 @@ oneOf: - $ref: "#/$defs/Project" - $ref: "#/$defs/AgentRegistration" - $ref: "#/$defs/WorkdayPolicy" + - $ref: "#/$defs/WorkdaySchedule" - $ref: "#/$defs/ProviderOffer" - $ref: "#/$defs/ProviderState" - $ref: "#/$defs/Workday" @@ -1509,6 +1510,72 @@ $defs: type: boolean additionalProperties: false + WorkdayIntent: + # Manual and recurring workdays use this one high-level input; resolved Workday owns mode and policy. + type: object + required: [schemaVersion, teamId, profileId, projects, startsAt] + properties: + schemaVersion: {const: treeseed.workday-intent/v1} + teamId: {$ref: "#/$defs/Identifier"} + profileId: {$ref: "#/$defs/Identifier"} + projects: + oneOf: + - {const: all} + - {type: array, minItems: 1, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + executionMode: {enum: [simulation, production], default: simulation} + startsAt: {$ref: "#/$defs/Timestamp"} + endsAt: {$ref: "#/$defs/Timestamp"} + durationSeconds: {$ref: "#/$defs/PositiveSeconds"} + planningOnly: {type: boolean} + objectiveFilters: {type: array, items: {$ref: "#/$defs/Identifier"}} + proposalIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + decisionIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + allocation: + type: object + properties: + planningPercent: {$ref: "#/$defs/WorkdayPolicyFields/properties/planningPercent"} + allocationWeight: {$ref: "#/$defs/WorkdayPolicyFields/properties/allocationWeight"} + planningTurnMaximumSeconds: {$ref: "#/$defs/WorkdayPolicyFields/properties/planningTurnMaximumSeconds"} + projectPercentages: {$ref: "#/$defs/WorkdayPolicyFields/properties/projectPercentages"} + agentClassPercentages: {$ref: "#/$defs/WorkdayPolicyFields/properties/agentClassPercentages"} + additionalProperties: false + agentSelection: + type: object + anyOf: [{required: [agentSlugs]}, {required: [activityTypes]}, {required: [classIds]}, {required: [classSlugs]}] + properties: + agentSlugs: {type: array, minItems: 1, items: {$ref: "#/$defs/Identifier"}} + activityTypes: {type: array, minItems: 1, items: {enum: [planning, estimating, reviewing, reporting, chat]}} + classIds: {type: array, minItems: 1, items: {$ref: "#/$defs/Identifier"}} + classSlugs: {type: array, minItems: 1, items: {$ref: "#/$defs/Identifier"}} + mode: {const: intersection} + additionalProperties: false + operatorConstraints: + type: object + properties: + providerIds: {type: array, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + maxConcurrency: {type: integer, minimum: 1} + additionalProperties: false + not: {required: [endsAt, durationSeconds]} + additionalProperties: false + + WorkdaySchedule: + # A recurrence stores canonical intent, never an alternate allocator or a manual reservation budget. + type: object + required: [id, teamId, status, purpose, cadenceSeconds, intent, lastRunId, nextRunAt, stateVersion, createdAt, updatedAt] + properties: + id: {$ref: "#/$defs/Identifier"} + teamId: {$ref: "#/$defs/Identifier"} + status: {enum: [active, paused, completed, failed]} + purpose: {type: string} + cadenceSeconds: {type: integer, minimum: 60} + intent: {$ref: "#/$defs/WorkdayIntent"} + lastRunId: {type: [string, "null"]} + nextRunAt: {$ref: "#/$defs/Timestamp"} + stateVersion: {type: integer, minimum: 1} + createdAt: {$ref: "#/$defs/Timestamp"} + updatedAt: {$ref: "#/$defs/Timestamp"} + additionalProperties: false + WorkdayPolicy: # The team's single default policy, stored with team metadata and snapshotted by workdays. type: object From 42c9bf553308bcdae7e374922d3df3eeb5ff5778 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 03:00:46 -0400 Subject: [PATCH 366/501] Report real allocation frontier without circular acceptance gates --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 26590d00..fb6b63e9 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-88d82018-99f8-47ed-9dbf-fd06d3559a04 | 4 | stopped diagnostic attempt; golden not passed | Platform #520 | Drain settled cleanly; acting Writer content and remaining allocation contracts must be integrated before refreezing the unchanged proposal. | +| SDK | workday-4704cd25-4a95-4cf3-9790-6ba22791403f | 5 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight planning contributions, eight chat responses and four estimates; stopped before acting to repair exact TreeDX candidate review. Two cycles and the full lifecycle remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 44e63821..9d2e7e66 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,11 +546,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, graph-only admission, terminal accounting and managed migration are integrated on staging; governed acting Writer outputs are repaired. Recurring-intent migration, explicit custody selection and allocation explanations are under integration. No complete golden lifecycle has passed; exact refs and evidence belong in Platform #520. +- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. Native research/implementation limits and live clock/usage evidence are recorded in Platform #520; integrated golden and concurrent-sharing gates remain unproven. ### Current active blocker -- No active external blocker exists. Mandatory clock awareness passes on the live Kata guest; complete golden lifecycles, repeated collaboration and concurrent sharing remain unproven (Platform #520). +- No user-action blocker exists. The current required-path integration repair is owned by `agent-assignments.md`; component tests do not satisfy the integrated acceptance boundary. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 1ad596c9..73a6d532 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK proposal revision 4 preserves the role-specific requirements and removes operator-authored estimate triples through governed TreeDX publication. Addressed communication now retains exact parent-run/invocation provenance without superseding or settling unrelated workdays. Allocation execution evidence belongs in `agent-architecture.md`; no complete golden lifecycle has passed (Platform #520). +- SDK proposal revision 4 retains the fixed role requirements without operator-authored estimates. One diagnostic run produced eight planning contributions, eight chat responses and four genuine estimating outputs; it does not prove repeated collaboration or a complete golden lifecycle. Allocation evidence is owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- Golden execution is paused until the integrated allocation prerequisite in `agent-architecture.md` is proven; manually prescribed assignment budgets are not acceptance evidence. +- Exact TreeDX actor-candidate custody and Reviewer binding repairs must be integrated and installed before the next run; regression tests reproduce the missing context and incorrect proposal binding (Platform #520). ### Next acceptance milestone -- After allocation acceptance, refreeze allocation rules rather than estimate triples and prove the unchanged SDK proposal → Actor → Reviewer → revision → re-review → approval path. +- Prove the unchanged SDK proposal, using real allocation and genuine estimates, through accepted decision → generated Actor → generated Reviewer → request-changes revision → re-review → approval; this same path is the allocation acceptance gate, not a subsequent campaign. ## Completion From 70c55e4b5275ccb9b6bf17422fc52e09c69fffe9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 03:04:58 -0400 Subject: [PATCH 367/501] Retire the repaired candidate-binding blocker from plan status --- docs/agent-assignments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 73a6d532..8cb3be11 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact TreeDX actor-candidate custody and Reviewer binding repairs must be integrated and installed before the next run; regression tests reproduce the missing context and incorrect proposal binding (Platform #520). +- No user-action blocker exists. Exact TreeDX actor-candidate custody and Reviewer binding component tests pass; repeated collaboration and the integrated Actor/Reviewer revision cycle remain unproven (Platform #520). ### Next acceptance milestone From 1ba03a7af17cec0a5e54cbac527359786a6c7af9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 04:17:10 -0400 Subject: [PATCH 368/501] docs: retain truthful allocation acceptance frontier --- docs/agent-acceptance.md | 2 +- docs/agent-assignments.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index fb6b63e9..e42bf451 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-4704cd25-4a95-4cf3-9790-6ba22791403f | 5 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight planning contributions, eight chat responses and four estimates; stopped before acting to repair exact TreeDX candidate review. Two cycles and the full lifecycle remain unproven. | +| SDK | workday-396fc7c2-37eb-4ba6-a8b9-22074243f276 | 6 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight first-cycle planning contributions and chat responses; estimation failed on strict schema types. Two cycles, the complete estimate set and the full lifecycle remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 8cb3be11..1cdcbafc 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK proposal revision 4 retains the fixed role requirements without operator-authored estimates. One diagnostic run produced eight planning contributions, eight chat responses and four genuine estimating outputs; it does not prove repeated collaboration or a complete golden lifecycle. Allocation evidence is owned by `agent-architecture.md` (Platform #520). +- SDK proposal revision 4 retains the fixed role requirements without operator-authored estimates. The latest diagnostic replay produced all eight first-cycle planning contributions and chat responses; two collaborative cycles, the complete estimate set and the golden lifecycle remain unproven. Allocation evidence is owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- No user-action blocker exists. Exact TreeDX actor-candidate custody and Reviewer binding component tests pass; repeated collaboration and the integrated Actor/Reviewer revision cycle remain unproven (Platform #520). +- Estimate generation was rejected before model execution because fixed output constraints lacked explicit schema types. Agent #140 repairs the schema with strict-shape regressions; managed replay remains required. No user-action blocker exists (Platform #520). ### Next acceptance milestone From 4d53b4bf097a9380737b4b980d1465c1e86fd4ea Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 04:41:22 -0400 Subject: [PATCH 369/501] docs: replace resolved schema observations with current acceptance gap --- docs/agent-acceptance.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index e42bf451..d5c3a2b2 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-396fc7c2-37eb-4ba6-a8b9-22074243f276 | 6 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight first-cycle planning contributions and chat responses; estimation failed on strict schema types. Two cycles, the complete estimate set and the full lifecycle remain unproven. | +| SDK | workday-13bf40d9-a982-44f6-8313-1f82003bc958 | 7 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight first-cycle planning contributions and chat responses; estimating schema rejected by the harness. Two cycles, the complete estimate set and the full lifecycle remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 1cdcbafc..6014f3cd 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Estimate generation was rejected before model execution because fixed output constraints lacked explicit schema types. Agent #140 repairs the schema with strict-shape regressions; managed replay remains required. No user-action blocker exists (Platform #520). +- Estimating completion schemas failed harness validation. Agent #141's supported scalar-only repair awaits managed estimate acceptance; no user-action blocker exists (Platform #520). ### Next acceptance milestone From afa1fea502ccb1e4988f153e0b87d8d2acc08c65 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 05:29:20 -0400 Subject: [PATCH 370/501] docs: record genuine estimating gate and simulation handoff frontier --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index d5c3a2b2..dc4319f9 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-13bf40d9-a982-44f6-8313-1f82003bc958 | 7 | stopped diagnostic attempt; golden not passed | Platform #520 | Eight first-cycle planning contributions and chat responses; estimating schema rejected by the harness. Two cycles, the complete estimate set and the full lifecycle remain unproven. | +| SDK | workday-b91907f8-9053-4c63-991c-3005022f504e | 8 | stopped before simulation handoff; golden not passed | Platform #520; API #377 | Eight first-cycle planning contributions/chat responses and seven genuine estimates. Two collaborative cycles, safe ready-proposal handoff and the full lifecycle remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 9d2e7e66..3d764d63 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,7 +546,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. Native research/implementation limits and live clock/usage evidence are recorded in Platform #520; integrated golden and concurrent-sharing gates remain unproven. +- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. Managed planning/estimating results prove nonzero native usage and both required clock checks; integrated golden and concurrent-sharing gates remain unproven (Platform #520). ### Current active blocker diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6014f3cd..99be0d26 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK proposal revision 4 retains the fixed role requirements without operator-authored estimates. The latest diagnostic replay produced all eight first-cycle planning contributions and chat responses; two collaborative cycles, the complete estimate set and the golden lifecycle remain unproven. Allocation evidence is owned by `agent-architecture.md` (Platform #520). +- SDK proposal revision 4 retains fixed role requirements without operator-authored estimates. Managed read-back proves eight first-cycle planning contributions, eight chat responses and seven genuine estimating results; two collaborative cycles and the golden lifecycle remain unproven. Allocation evidence is owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- Estimating completion schemas failed harness validation. Agent #141's supported scalar-only repair awaits managed estimate acceptance; no user-action blocker exists (Platform #520). +- Simulation proposal handoff requires workday-scoped custody rather than the publication branch. API #377 repairs the existing writer; managed handoff acceptance remains required. No user-action blocker exists (Platform #520). ### Next acceptance milestone From 0e6f0df7a758d08f0fca2f520bac9513a2498f92 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 06:59:31 -0400 Subject: [PATCH 371/501] docs: record proven allocation collaboration and remaining lifecycle gate --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index dc4319f9..ad4d972a 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-b91907f8-9053-4c63-991c-3005022f504e | 8 | stopped before simulation handoff; golden not passed | Platform #520; API #377 | Eight first-cycle planning contributions/chat responses and seven genuine estimates. Two collaborative cycles, safe ready-proposal handoff and the full lifecycle remain unproven. | +| SDK | workday-a9d5af6f-962f-4651-8eb7-5ebd90756716 | 10 | stopped at ready-content discovery; golden not passed | Platform #520; API #377; Deployment #747; TreeDX #63 | Two materially collaborative planning cycles, two genuine estimating rounds and eight durable chat responses; one guest termination required chat retry. Simulation ready authoring succeeded. Existing TreeDX Unicode repair is now live; generated review/decision and full lifecycle require replay. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3d764d63..94bfc1e3 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,11 +546,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. Managed planning/estimating results prove nonzero native usage and both required clock checks; integrated golden and concurrent-sharing gates remain unproven (Platform #520). +- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. All eight SDK agents completed two planning cycles; each second-cycle result materially cites all eight prior contributions and passes both clock checks with nonzero native usage. Two genuine seven-agent estimating rounds and eight durable chat responses are proven; integrated golden and concurrent-sharing gates remain unproven (Platform #520). ### Current active blocker -- No user-action blocker exists. The current required-path integration repair is owned by `agent-assignments.md`; component tests do not satisfy the integrated acceptance boundary. +- The remaining end-to-end frontier is owned by `agent-assignments.md`; component tests and collaborative planning alone do not satisfy its integrated acceptance boundary. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 99be0d26..df331eec 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK proposal revision 4 retains fixed role requirements without operator-authored estimates. Managed read-back proves eight first-cycle planning contributions, eight chat responses and seven genuine estimating results; two collaborative cycles and the golden lifecycle remain unproven. Allocation evidence is owned by `agent-architecture.md` (Platform #520). +- The unchanged SDK proposal retains fixed role requirements without operator-authored estimates. Managed simulation authoring produced an exact ready version on its workday ref; generated proposal review, accepted decision and the golden lifecycle remain unproven. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- Simulation proposal handoff requires workday-scoped custody rather than the publication branch. API #377 repairs the existing writer; managed handoff acceptance remains required. No user-action blocker exists (Platform #520). +- No active implementation or user-action blocker is currently known after activating the existing TreeDX Unicode repair. The unchanged proposal is reset for managed replay; exact ready-content discovery and generated proposal review remain acceptance gaps (Platform #520). ### Next acceptance milestone From e50b3ec646b8a1daf3dfbcd3b32c1d8f2ca2d594 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 08:31:31 -0400 Subject: [PATCH 372/501] docs(agents): record shared graph admission frontier Record fully captured allocation preflight, normal review discovery and the real readiness blocker. No broad acceptance promotion. Refs #520. --- docs/agent-acceptance.md | 6 +++--- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index ad4d972a..bc98b1e7 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -562,13 +562,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [ ] Refreeze the campaign manifest and exact proposal bytes against the integrated allocation runtime; the prior campaign predates capability accounting acceptance. +- [x] Refreeze the campaign manifest and exact proposal bytes against the integrated allocation runtime. The SDK draft retains its original digest without estimates; current authoritative revision and managed builds are recorded in the allocation campaign snapshot (Platform #520). - [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. - [x] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. -- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the allocation-refrozen campaign; prior baselines do not prove the current run's non-mutation boundary. +- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the allocation-refrozen campaign: all 35 GitHub repositories, all 17 project registry/deployment declarations, and all 30 public Docker Hub repositories with 4,205 tag/digest observations (Platform #520). ### Stage 1 — SDK alone @@ -745,7 +745,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | -| SDK | workday-a9d5af6f-962f-4651-8eb7-5ebd90756716 | 10 | stopped at ready-content discovery; golden not passed | Platform #520; API #377; Deployment #747; TreeDX #63 | Two materially collaborative planning cycles, two genuine estimating rounds and eight durable chat responses; one guest termination required chat retry. Simulation ready authoring succeeded. Existing TreeDX Unicode repair is now live; generated review/decision and full lifecycle require replay. | +| SDK | workday-fbb617ba-5a7f-461c-878f-df4c9d2da9eb | 11 | drained at shared review admission; golden not passed | Platform #520; API #378 / PR #379 | Genuine estimates produced an exact ready proposal and generated independent Reviewer. Accounting omitted shared graph readiness; repair and fresh managed replay are required. All pre/post upstream inventories match. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 94bfc1e3..7ef558b1 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- The remaining end-to-end frontier is owned by `agent-assignments.md`; component tests and collaborative planning alone do not satisfy its integrated acceptance boundary. +- API #378 repairs readiness accounting that omitted shared proposal graph nodes and therefore assigned zero capacity to eligible review work. The PostgreSQL-compatible regression and 23 focused tests pass locally; required Actions and managed replay remain pending. The end-to-end frontier remains owned by `agent-assignments.md`. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index df331eec..b6e1285a 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The unchanged SDK proposal retains fixed role requirements without operator-authored estimates. Managed simulation authoring produced an exact ready version on its workday ref; generated proposal review, accepted decision and the golden lifecycle remain unproven. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). +- The unchanged SDK proposal retains fixed role requirements without operator-authored estimates. Normal simulation authoring now generates an independent proposal Reviewer with exact source provenance; review completion, accepted decision and the golden lifecycle remain unproven. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- No active implementation or user-action blocker is currently known after activating the existing TreeDX Unicode repair. The unchanged proposal is reset for managed replay; exact ready-content discovery and generated proposal review remain acceptance gaps (Platform #520). +- Review admission is blocked by the allocation readiness defect owned by `agent-architecture.md` and API #378; no user action is required. ### Next acceptance milestone From 11a8dcbec706a1eefab3211617145a0b3d91fb36 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 17 Sep 2026 08:35:23 -0400 Subject: [PATCH 373/501] docs(agents): clear resolved allocation readiness blocker Retain fresh integrated replay as an unproven acceptance gate; no broad checkbox promotion. Refs #520. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7ef558b1..042360ef 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- API #378 repairs readiness accounting that omitted shared proposal graph nodes and therefore assigned zero capacity to eligible review work. The PostgreSQL-compatible regression and 23 focused tests pass locally; required Actions and managed replay remain pending. The end-to-end frontier remains owned by `agent-assignments.md`. +- No active implementation or user-action blocker is known. API #379 merged the shared-graph readiness repair with a PostgreSQL-compatible regression, 23 passing focused tests and green required Actions; API and runner are live. Fresh integrated replay remains required, with its end-to-end frontier owned by `agent-assignments.md` (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index b6e1285a..0eafced9 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Review admission is blocked by the allocation readiness defect owned by `agent-architecture.md` and API #378; no user action is required. +- No active implementation or user-action blocker is known after the readiness repair; managed review admission still requires the fresh replay owned by `agent-architecture.md` (Platform #520). ### Next acceptance milestone From 1a7134a4db3310816c634f233a119a343a7a42b4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 10:54:23 -0400 Subject: [PATCH 374/501] docs: record managed allocation acceptance shutdown blocker --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 042360ef..dadcc4be 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active implementation or user-action blocker is known. API #379 merged the shared-graph readiness repair with a PostgreSQL-compatible regression, 23 passing focused tests and green required Actions; API and runner are live. Fresh integrated replay remains required, with its end-to-end frontier owned by `agent-assignments.md` (Platform #520). +- Fresh integrated replay is blocked by an intentional host shutdown on 2026-09-17: manager API, supervisor, timers, sandbox broker, edge and encrypted provider volume were stopped, and development-resume units were stopped. API #379 and the standalone-chat project-scope repair in API #380 are merged with passing checks, but managed activation and the golden lifecycle have not been retested; confirm the shutdown may be reversed before restarting the stack (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 0eafced9..2160c0af 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No active implementation or user-action blocker is known after the readiness repair; managed review admission still requires the fresh replay owned by `agent-architecture.md` (Platform #520). +- Fresh managed replay is paused by the host shutdown recorded in `agent-architecture.md`; no review, decision, actor or paired-reviewer acceptance is claimed (Platform #520). ### Next acceptance milestone From 42b9d4ef3c610fa56ba9c1ae71f9e945d5424d78 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 15:03:51 -0400 Subject: [PATCH 375/501] Compose Deployment rc316 with exact SDK and CLI payloads --- config/integrations/development.release.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 6d292843..7c8d4b83 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,13 +1,13 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc313", - "generation": 262, + "release": "0.1.0~rc316", + "generation": 263, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"18437f6f9f6084b950f99a89801e81cd1035d2fb","tag":"0.1.0-rc.313"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"cee20400e0b6acd626559f8693a5ad8c6629e1cc","tag":"0.1.0-rc.316"}, "hostPayloads": [ - {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.117","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.117.tgz","sha256":"8e8407299ba18e2111e71afc1bd55287e57cb922fe716674b650e1faf1b84d56"}}, + {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, {"id":"jose","packageName":"jose","version":"6.2.12","artifact":{"url":"https://registry.npmjs.org/jose/-/jose-6.2.12.tgz","sha256":"32d9da2aaa0e110cacef2ae21e8dae866201f1428424f839001085fe7351ebfe"}}, {"id":"oauth4webapi","packageName":"oauth4webapi","version":"3.8.8","artifact":{"url":"https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.8.tgz","sha256":"bac088aecc7cc80e2469b08592c8eb01b9ae6d4a749d89a6016aa54bb1533690"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.83","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.83.tgz","sha256":"5220dfc73ae290b5f7a63fc4f93d03726bfaf66a0c80108e7b676fe452f3a953"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.84","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.84.tgz","sha256":"4faf3ce0fd1ac3110ad3e93113be7682da24e7d848788cd7b92cc5115921b4be"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.18","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/treeseed-treedx-0.3.0-rc.18.tgz","sha256":"8940c30f39d80cbdd99c71dc085eca09103846ac1377ff3d6d87158d77dd69f0"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-12T01:40:00Z" + "createdAt": "2026-09-19T19:02:57Z" } From 7406b72bfca70b2fbc710c5e15ef3c629dd0009d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 15:45:13 -0400 Subject: [PATCH 376/501] Lock lifecycle recovery releases in development composition --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 7c8d4b83..e1eb999c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc316", - "generation": 263, + "release": "0.1.0~rc317", + "generation": 264, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"cee20400e0b6acd626559f8693a5ad8c6629e1cc","tag":"0.1.0-rc.316"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"0c91b2132b69e4a52bc66911027e71ad287762ac","tag":"0.1.0-rc.317"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -17,7 +17,7 @@ {"id":"admin","packageName":"@treeseed/admin","version":"0.12.59-rc.38","artifact":{"url":"https://github.com/treeseed-ai/admin/releases/download/0.12.59-rc.38/treeseed-admin-0.12.59-rc.38.tgz","sha256":"d81a5b3585977a63393a155b586575681c53c8ad1f04d879bf02daa4b8288c50"}}, { "id": "reviewer", "packageName": "@treeseed/reviewer", "version": "0.1.0-rc.13", "artifact": { "url": "https://github.com/treeseed-ai/reviewer/releases/download/0.1.0-rc.13/treeseed-reviewer-0.1.0-rc.13.tgz", "sha256": "f30fc8697fd06f26b8278fe07e28e5065819d2962043693447a77d1ace070b14" } }, { "id": "playwright-core", "packageName": "playwright-core", "version": "1.60.0", "artifact": { "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "sha256": "8b1df81ba75e90a41eb5c996350ea7ecc1c915ea643ec55138f91c949c5a25bf" } }, - {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.84","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.84.tgz","sha256":"4faf3ce0fd1ac3110ad3e93113be7682da24e7d848788cd7b92cc5115921b4be"}}, + {"id":"cli","packageName":"@treeseed/cli","version":"0.13.0-rc.85","artifact":{"url":"https://registry.npmjs.org/@treeseed/cli/-/cli-0.13.0-rc.85.tgz","sha256":"289d64e668eb747c07b675e599892a66f97ffeedbc2fb3a0c103594057a454ce"}}, {"id":"treedx","packageName":"@treeseed/treedx","version":"0.3.0-rc.18","artifact":{"url":"https://github.com/treeseed-ai/treedx/releases/download/0.3.0-rc.18/treeseed-treedx-0.3.0-rc.18.tgz","sha256":"8940c30f39d80cbdd99c71dc085eca09103846ac1377ff3d6d87158d77dd69f0"}}, { "id": "yaml", "packageName": "yaml", "version": "2.9.0", "artifact": { "url": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "sha256": "008fa204cb1ba700e0272ba045abbf09a6ffe63456e8146ba97cac6c2ad1ef91" } }, { "id": "zod", "packageName": "zod", "version": "3.25.76", "artifact": { "url": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "sha256": "9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377" } } From 7cdb2c2cdca418793f94576a56e292cf538eb816 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 16:42:56 -0400 Subject: [PATCH 377/501] chore(integration): select Deployment rc318 in generation 265 --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index e1eb999c..4f19385c 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc317", - "generation": 264, + "release": "0.1.0~rc318", + "generation": 265, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"0c91b2132b69e4a52bc66911027e71ad287762ac","tag":"0.1.0-rc.317"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"f5204f738b4f6f14c0b732aee10df9a821e2aae0","tag":"0.1.0-rc.318"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-19T19:02:57Z" + "createdAt": "2026-09-19T20:42:32Z" } From 024f91e3c1f1eecf91633927d1b854d872619da3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 17:05:54 -0400 Subject: [PATCH 378/501] chore(integration): select Deployment rc319 in generation 266 --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 4f19385c..1640fb1f 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc318", - "generation": 265, + "release": "0.1.0~rc319", + "generation": 266, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"f5204f738b4f6f14c0b732aee10df9a821e2aae0","tag":"0.1.0-rc.318"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"18bc93a9280fbc76362ef8ca9e61b8910790c8f6","tag":"0.1.0-rc.319"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-19T20:42:32Z" + "createdAt": "2026-09-19T21:05:30Z" } From e55cfe2e9faadf9c8f67a51123e6804ecd04460a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 18:04:30 -0400 Subject: [PATCH 379/501] Select Deployment rc320 in development generation 266 --- config/integrations/development.release.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 1640fb1f..8abd1ab4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc319", + "release": "0.1.0~rc320", "generation": 266, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"18bc93a9280fbc76362ef8ca9e61b8910790c8f6","tag":"0.1.0-rc.319"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2b7e036cf1e66261003e022fa26684469f2c1277","tag":"0.1.0-rc.320"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-19T21:05:30Z" + "createdAt": "2026-09-19T22:04:04Z" } From 55d6f81ea018b72e3b1728b49875f8e53fd34a77 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 18:10:37 -0400 Subject: [PATCH 380/501] chore(integration): select Deployment rc320 in generation 266 (#545) * chore(integration): select Deployment rc319 in generation 266 * Select Deployment rc320 in development generation 266 --- config/integrations/development.release.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/integrations/development.release.json b/config/integrations/development.release.json index 4f19385c..8abd1ab4 100644 --- a/config/integrations/development.release.json +++ b/config/integrations/development.release.json @@ -1,11 +1,11 @@ { "schemaVersion": "treeseed.integration-release/v1", - "release": "0.1.0~rc318", - "generation": 265, + "release": "0.1.0~rc320", + "generation": 266, "track": "development", "compatibilityId": "treeseed-linux-amd64-v1", "platform": {"repository":"treeseed-ai/platform","commit":"e227670f9a8b844a70658b9503752a643236ff99"}, - "deployment": {"repository":"treeseed-ai/deployment","commit":"f5204f738b4f6f14c0b732aee10df9a821e2aae0","tag":"0.1.0-rc.318"}, + "deployment": {"repository":"treeseed-ai/deployment","commit":"2b7e036cf1e66261003e022fa26684469f2c1277","tag":"0.1.0-rc.320"}, "hostPayloads": [ {"id":"sdk","packageName":"@treeseed/sdk","version":"0.13.0-rc.121","artifact":{"url":"https://registry.npmjs.org/@treeseed/sdk/-/sdk-0.13.0-rc.121.tgz","sha256":"5211b3db5dbcd00211c73470ac406934539670ced2fc672d73e2ea57744d6144"}}, {"id":"identity","packageName":"@treeseed/identity","version":"0.1.0-rc.23","artifact":{"url":"https://registry.npmjs.org/@treeseed/identity/-/identity-0.1.0-rc.23.tgz","sha256":"fda91830e4073be14db91a4b15b6c83d66a4a76b75c8f62218b37288cb344e7f"}}, @@ -40,5 +40,5 @@ {"componentId":"ai-training","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-component-release.json","sha256":"9d293d087a7a38f2d80efc1f8fdd13e38849e78dcfa2fe986658b39c40161bfe"},"files":[{"path":"ai-training-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-training-compose.yml","sha256":"440ac53d4f3b91dc443e4e5e7bdaa958c504c758661de7d73a0b63e8fd4294e8"}}]}, {"componentId":"ai-lab","release":"0.11.0~rc24-1","manifest":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-component-release.json","sha256":"042dce565a244be9d7efac7f55e4acf7e3722ec7285e32495c40504cef9ef88c"},"files":[{"path":"ai-lab-compose.yml","artifact":{"url":"https://github.com/treeseed-ai/ai/releases/download/0.11.0-rc24/ai-lab-compose.yml","sha256":"8211ec5612a84ae55eae066442fdbbe903fd822f9b6e6f6b60905b0fd02e49b5"}}]} ], - "createdAt": "2026-09-19T20:42:32Z" + "createdAt": "2026-09-19T22:04:04Z" } From a02cc35e4d36a204ec6e0bab2c4188741548c756 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 19:08:11 -0400 Subject: [PATCH 381/501] Refreeze agent acceptance inputs and correct current readiness --- docs/agent-acceptance.md | 37 ++++++++++++++++++++++++++++++++----- docs/agent-architecture.md | 10 +++++----- docs/agent-assignments.md | 2 +- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index bc98b1e7..d344200a 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -70,7 +70,32 @@ The campaign manifest is test configuration, not a new control-plane resource. O ### High-level allocation inputs -Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. Single-project runs use the following allocation inputs; joint SDK/API runs use `projectPercentages: {sdk: 50, api: 50}` with the same class percentages in each project. Portfolio runs use equal normalized project shares. +Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. The campaign manifest must contain one fully expanded, schema-validated workday input for **every** individual project, the SDK/API joint run, the portfolio run, and each controlled failure rerun. The table below is the authoring rule; submit canonical seeded project IDs and agent-class IDs, and retain the exact submitted input and resolved policy snapshot with each run. A table entry is not permission to omit fields from a submitted input. + +| Run | Selected projects and `projectPercentages` | `agentClassPercentages` | +|---|---|---| +| SDK | `sdk: 100` | SDK: eight classes at `12.5` each | +| API | `api: 100` | API: eight classes at `12.5` each | +| Agent | `agent: 100` | Agent: eight classes at `12.5` each | +| TreeDX | `treedx: 100` | TreeDX: eight classes at `12.5` each | +| CLI | `cli: 100` | CLI: eight classes at `12.5` each | +| Deployment | `deployment: 100` | Deployment: eight classes at `12.5` each | +| Identity | `identity: 100` | Identity: eight classes at `12.5` each | +| UI | `ui: 100` | UI: eight classes at `12.5` each | +| Core | `core: 100` | Core: eight classes at `12.5` each | +| Admin | `admin: 100` | Admin: eight classes at `12.5` each | +| Reviewer | `reviewer: 100` | Reviewer: eight classes at `12.5` each | +| Engineering Template | `template-engineering: 100` | Engineering Template: eight classes at `12.5` each | +| Research Template | `template-research: 100` | Research Template: eight classes at `12.5` each | +| Market | `market: 100` | Market: eight classes at `12.5` each | +| Market API | `market-api: 100` | Market API: eight classes at `12.5` each | +| Skill | `skill: 100` | Skill: eight classes at `12.5` each | +| Platform | `platform: 100` | Platform: eight classes at `12.5` each | +| SDK + API | `sdk: 50, api: 50` | Both projects: eight classes at `12.5` each | +| All-project portfolio | All 17 seeded projects, each with equal positive weight `1`; the allocator normalizes to `100/17` percent per project | Every project: eight classes at `12.5` each | +| Controlled failure | Reuse the exact accepted run's selection and allocation snapshot | Reuse the exact accepted run's class targets; only the specified injected fault changes | + +The eight classes are `architect`, `researcher`, `tester`, `engineer`, `technical-writer`, `releaser`, `reviewer`, and `reporter`. Every submitted input must also record `executionMode: simulation`, `profileId: default`, the profile revision, `durationSeconds`, `maximumConcurrency`, `communicationConcurrency`, `planningPercent: 20`, `allocationWeight: 1`, `planningTurnMaximumSeconds: 180`, the selected proposal/decision IDs, the provider offer revision, capability/model daily caps, reservations, and remaining supply read-back. Start individual and joint runs from the current `durationSeconds: 28800`, `maximumConcurrency: 1`, `communicationConcurrency: 1` default unless a read-only preflight proves the run cannot fit. Version-check any required policy update and freeze the resulting revision before starting. Expand all class and project mappings into the manifest; do not infer missing mappings from this Markdown table at execution time. Use the team's canonical `default` policy (`--profile default`). Freeze its revision and the resolved workday snapshot. Update team defaults through version-checked `workdays profiles update default --input `; explicit workday allocation overrides do not change that policy or existing assignments. Repository allocation profiles, tiers, borrowing, and fixed assignment budgets are not campaign inputs. @@ -92,10 +117,12 @@ allocation: reporter: 12.5 ``` -Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. +Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Each assignment read-back must identify its workday-policy snapshot, genuine estimate and rationale, allocator-selected active duration and deadline, limiting constraint, reservation, measured usage, and settlement. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. For this local campaign, configure `codex-research` with Sol/Medium and a 7,200-active-second daily cap, and `codex-implementation` with Terra/Medium and a 28,800-active-second daily cap. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. +For the all-project portfolio run only, calculate required planning, acting, bounded review, and Reporter supply from the individually accepted genuine estimates. If the normal caps cannot support that work inside the eight-hour window at actual safe concurrency, raise test capability/model caps through versioned provider configuration, preflight again, and freeze the exact temporary offer. Never lower a viable assignment minimum or exceed host/model limits to force admission. Restore and verify the ordinary caps after settlement. If the host cannot supply a viable plan, do not start the portfolio workday; report the exact shortfall. + Admission must explain weighted workday entitlement, the planning pool, project/class opportunity, scoped calibration measurements, viable task minimum, limiting constraint, active-duration reservation and hard deadline. Agent-authored estimate triples and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient viable capacity defers a node without changing its dependencies. At the phase boundary unused planning entitlement becomes acting/review capacity. Selecting a governed proposal must automatically generate estimating turns for its work owners and Reviewer through the ordinary graph, after planning contributions. Do not require an operator activity override to obtain genuine estimates. Without a selected proposal, autonomous planning remains valid and no subjectless estimating work is generated. @@ -562,13 +589,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [x] Refreeze the campaign manifest and exact proposal bytes against the integrated allocation runtime. The SDK draft retains its original digest without estimates; current authoritative revision and managed builds are recorded in the allocation campaign snapshot (Platform #520). +- [ ] Refreeze the campaign manifest and exact proposal bytes against the **current** integrated runtime. The prior SDK draft and allocation snapshot are retained as historical evidence, but the current manifest reports `formalStage0Accepted: false`; refresh exact builds, provider offer, policy, and proposal refs before the next golden run (Platform #520). - [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. - [x] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. -- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the allocation-refrozen campaign: all 35 GitHub repositories, all 17 project registry/deployment declarations, and all 30 public Docker Hub repositories with 4,205 tag/digest observations (Platform #520). +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the **current** campaign. The prior 35-repository, 17-project, 30-Docker-Hub inventory remains historical evidence; it must be refreshed or proven unchanged at the new freeze (Platform #520). ### Stage 1 — SDK alone @@ -744,7 +771,7 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 1 | allocation refreeze pending | Platform #520 | Role-specific criteria remain; resolved allocation policy and actual capability/model supply must be frozen after integrated enforcement passes. | +| Preflight | — | 1 | current freeze pending | Platform #520 | Prior component checks remain evidence, not a formal Stage 0 pass. Refresh the runtime, provider offer, policy, proposal refs, and external inventory; validate expanded inputs for every run. | | SDK | workday-fbb617ba-5a7f-461c-878f-df4c9d2da9eb | 11 | drained at shared review admission; golden not passed | Platform #520; API #378 / PR #379 | Genuine estimates produced an exact ready proposal and generated independent Reviewer. Accounting omitted shared graph readiness; repair and fresh managed replay are required. All pre/post upstream inventories match. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index dadcc4be..9ce4fc11 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -507,10 +507,10 @@ trsd agents handlers list --json trsd agents handlers show --json trsd agents profiles validate --json trsd agents profiles show --json -trsd capacity workday plan --team --json -trsd capacity workday start --team --json -trsd capacity workday status --json -trsd capacity workday stop --json +trsd workdays plan --team --profile default --json +trsd workdays start --team --preflight --digest --yes --json +trsd workdays show --team --json +trsd workdays stop --team --json trsd capacity explain --team --json ``` @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Fresh integrated replay is blocked by an intentional host shutdown on 2026-09-17: manager API, supervisor, timers, sandbox broker, edge and encrypted provider volume were stopped, and development-resume units were stopped. API #379 and the standalone-chat project-scope repair in API #380 are merged with passing checks, but managed activation and the golden lifecycle have not been retested; confirm the shutdown may be reversed before restarting the stack (Platform #520). +- No host-shutdown blocker remains: installed rc.320/Platform generation 266 passed managed stop/start acceptance; manager, provider, sandbox, and API were healthy on 2026-09-19. The current CLI session and exact Stage 0 runtime/provider/proposal freeze must be revalidated before the unchanged SDK golden replay. No golden lifecycle has passed (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2160c0af..b3cbe1b6 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Fresh managed replay is paused by the host shutdown recorded in `agent-architecture.md`; no review, decision, actor or paired-reviewer acceptance is claimed (Platform #520). +- The prior host-shutdown blocker is resolved (see `agent-architecture.md`). The fresh campaign freeze and unchanged SDK proposal review/decision/actor path remain unproven; do not count the earlier reduced proposal or drained workday as acceptance (Platform #520). ### Next acceptance milestone From fc788ec3524f35ba40205b6c872388082ed312d1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 19 Sep 2026 23:46:01 -0400 Subject: [PATCH 382/501] Record failed SDK golden and stale campaign freeze --- docs/agent-acceptance.md | 10 +++++----- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index d344200a..82454600 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -589,13 +589,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [ ] Refreeze the campaign manifest and exact proposal bytes against the **current** integrated runtime. The prior SDK draft and allocation snapshot are retained as historical evidence, but the current manifest reports `formalStage0Accepted: false`; refresh exact builds, provider offer, policy, and proposal refs before the next golden run (Platform #520). +- [ ] Refreeze the campaign manifest and exact proposal bytes against the **current** integrated runtime. The previous freeze is historical evidence; API development source and the SDK library staging ref changed after the failed SDK workday (Platform #520). - [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. -- [x] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. -- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the **current** campaign. The prior 35-repository, 17-project, 30-Docker-Hub inventory remains historical evidence; it must be refreshed or proven unchanged at the new freeze (Platform #520). +- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. The accepted SDK proposal is immutable and no scoped retry/reset has been proven after a failed simulation workday. +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the **current** campaign. The prior baseline is historical evidence; refresh it after establishing a safe retry state (Platform #520). ### Stage 1 — SDK alone @@ -771,8 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 1 | current freeze pending | Platform #520 | Prior component checks remain evidence, not a formal Stage 0 pass. Refresh the runtime, provider offer, policy, proposal refs, and external inventory; validate expanded inputs for every run. | -| SDK | workday-fbb617ba-5a7f-461c-878f-df4c9d2da9eb | 11 | drained at shared review admission; golden not passed | Platform #520; API #378 / PR #379 | Genuine estimates produced an exact ready proposal and generated independent Reviewer. Accounting omitted shared graph readiness; repair and fresh managed replay are required. All pre/post upstream inventories match. | +| Preflight | — | 2 | prior freeze invalidated; current freeze pending | Platform #520 | SDK library staging and API development source changed after the diagnostic run; recapture exact refs and external baseline before retry. | +| SDK | workday-4e7d6e11-4fa9-4823-86de-09bfc14c3a6a | 15 | failed/ended; golden not passed | Platform #520; API #383 / PR #384 | Eight planning turns, seven genuine estimates, and one independent Reviewer accepted proposal v13; acting graph permission check failed. Current repair is in development mode. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 9ce4fc11..f803be3e 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No host-shutdown blocker remains: installed rc.320/Platform generation 266 passed managed stop/start acceptance; manager, provider, sandbox, and API were healthy on 2026-09-19. The current CLI session and exact Stage 0 runtime/provider/proposal freeze must be revalidated before the unchanged SDK golden replay. No golden lifecycle has passed (Platform #520). +- No active environment blocker. The local provider, broker, and live API are healthy; the prior Stage 0 freeze is stale after the SDK library and API development changes. No golden lifecycle has passed (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index b3cbe1b6..8c5f554c 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- The prior host-shutdown blocker is resolved (see `agent-architecture.md`). The fresh campaign freeze and unchanged SDK proposal review/decision/actor path remain unproven; do not count the earlier reduced proposal or drained workday as acceptance (Platform #520). +- No active environment blocker. The SDK diagnostic produced an accepted exact proposal revision, but the workday failed before acting admission; safe retry from the frozen draft and the Actor–Reviewer cycle remain unproven (Platform #520). ### Next acceptance milestone From 22839627784ba21e240b4fda9ccbb456b3b8a7a2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 11:33:55 -0400 Subject: [PATCH 383/501] Refreeze agent acceptance and record SDK retry gap --- docs/agent-acceptance.md | 6 +++--- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 82454600..d9f3359a 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -589,13 +589,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [ ] Refreeze the campaign manifest and exact proposal bytes against the **current** integrated runtime. The previous freeze is historical evidence; API development source and the SDK library staging ref changed after the failed SDK workday (Platform #520). +- [x] Refreeze the campaign manifest and exact proposal bytes against the current integrated runtime. The SDK retry retains all six fixed work-item objectives, dependencies, criteria, and permissions; 17 proposals, 136 agent profiles, and 25 real CLI allocation inputs validate. Current manifest digest: `sha256:808592936f8f01d59c2380e0cb200781aa5e44aaed9b84922563f274acd7662d` (Platform #520). - [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. -- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. The accepted SDK proposal is immutable and no scoped retry/reset has been proven after a failed simulation workday. -- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the **current** campaign. The prior baseline is historical evidence; refresh it after establishing a safe retry state (Platform #520). +- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. The scoped retry preserved the accepted prior proposal, but the new SDK workday failed during planning; the complete reset/teardown and acceptance watch remain unproven. +- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the current campaign. Baseline digest: `sha256:1fb914e10e49756a734dce8699ef6531665e528fa719dd582ba02673c2994b8c` across 35 repositories, 17 registry inventories, 30 Docker Hub repositories, and managed deployment state (Platform #520). ### Stage 1 — SDK alone diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f803be3e..b0e14826 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active environment blocker. The local provider, broker, and live API are healthy; the prior Stage 0 freeze is stale after the SDK library and API development changes. No golden lifecycle has passed (Platform #520). +- The current Stage 0 campaign is refrozen and the local provider, broker, and live API are healthy. The first SDK retry stopped on an invalid Engineer planning completion; Agent #144 / PR #145 are under local sandbox acceptance. No golden lifecycle has passed (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 8c5f554c..9ff040ef 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The unchanged SDK proposal retains fixed role requirements without operator-authored estimates. Normal simulation authoring now generates an independent proposal Reviewer with exact source provenance; review completion, accepted decision and the golden lifecycle remain unproven. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). +- The SDK diagnostic completed genuine estimation, independent proposal review, and an accepted exact decision, but failed before acting admission. The scoped retry preserves the original accepted proposal and all six fixed work items; no golden lifecycle has passed. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). ### Current active blocker -- No active environment blocker. The SDK diagnostic produced an accepted exact proposal revision, but the workday failed before acting admission; safe retry from the frozen draft and the Actor–Reviewer cycle remain unproven (Platform #520). +- The first retry workday stopped after an Engineer planning completion falsely reported chained source inspection as passing verification. Agent #144 / PR #145 constrain non-acting verification at generation and runtime; the patched sandbox is under a fresh local rerun. API #385 tracks the separate failed-create orphan-content defect (Platform #520). ### Next acceptance milestone From 2e1ff47ddcb0152fca7d08b2250a05beb937457f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 14:07:08 -0400 Subject: [PATCH 384/501] docs(platform): record SDK golden retry three frontier --- docs/agent-acceptance.md | 4 ++-- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index d9f3359a..968db5a5 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -771,8 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 2 | prior freeze invalidated; current freeze pending | Platform #520 | SDK library staging and API development source changed after the diagnostic run; recapture exact refs and external baseline before retry. | -| SDK | workday-4e7d6e11-4fa9-4823-86de-09bfc14c3a6a | 15 | failed/ended; golden not passed | Platform #520; API #383 / PR #384 | Eight planning turns, seven genuine estimates, and one independent Reviewer accepted proposal v13; acting graph permission check failed. Current repair is in development mode. | +| Preflight | — | 3 | current retry-3 freeze recorded | Platform #520; manifest `sha256:6b812ab853af8c565b8e590281b5ace17346ae4bd3b04d3ccaa5e0795a0b0f2c` | Exact refs and external baseline recorded for the current SDK retry; later source changes require a new freeze before any fresh run. | +| SDK | workday-cee24b4d-3122-4b5f-b067-672aa5491759 | 18 | retry-3 running; golden not passed | Platform #520; API #388/#390, PR #389 | Eight-role chat posted before voting; durable responses, governed estimates, accepted decision, acting/review cycle, settlement, and teardown remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index b0e14826..29982617 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical team policy, recurring intent/preflight, graph-only admission, explicit workday mode, allocation explanations, terminal accounting and managed migration are integrated on staging. All eight SDK agents completed two planning cycles; each second-cycle result materially cites all eight prior contributions and passes both clock checks with nonzero native usage. Two genuine seven-agent estimating rounds and eight durable chat responses are proven; integrated golden and concurrent-sharing gates remain unproven (Platform #520). +- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. The prior SDK retry completed eight first-cycle planning turns and seven genuine estimators; retry-3 is running the eight-role chat probe before decision. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). ### Current active blocker -- The current Stage 0 campaign is refrozen and the local provider, broker, and live API are healthy. The first SDK retry stopped on an invalid Engineer planning completion; Agent #144 / PR #145 are under local sandbox acceptance. No golden lifecycle has passed (Platform #520). +- No current provider or runtime outage is known. Retry-3 has not yet proved completed second planning cycle, acting, paired review, settlement, or clean teardown (Platform #520). ### Next acceptance milestone -- Complete the unchanged SDK lifecycle owned by `agent-assignments.md`, then API and concurrent simulation; verify allocation explanations, measured settlement and clean teardown throughout. +- Verify retry-3 planning, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 9ff040ef..2303fda7 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The SDK diagnostic completed genuine estimation, independent proposal review, and an accepted exact decision, but failed before acting admission. The scoped retry preserves the original accepted proposal and all six fixed work items; no golden lifecycle has passed. Allocation and collaborative planning evidence are owned by `agent-architecture.md` (Platform #520). +- The prior SDK retry reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but was stopped before acting acceptance. Retry-3 retains the six fixed work items and has posted the required eight-role Discussion before voting. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. ### Current active blocker -- The first retry workday stopped after an Engineer planning completion falsely reported chained source inspection as passing verification. Agent #144 / PR #145 constrain non-acting verification at generation and runtime; the patched sandbox is under a fresh local rerun. API #385 tracks the separate failed-create orphan-content defect (Platform #520). +- No active content-authority blocker remains. Eight addressed chat invocations are running; their responses and the retry-3 governed estimates are not yet complete (Platform #520). ### Next acceptance milestone -- Prove the unchanged SDK proposal, using real allocation and genuine estimates, through accepted decision → generated Actor → generated Reviewer → request-changes revision → re-review → approval; this same path is the allocation acceptance gate, not a subsequent campaign. +- Verify eight durable chat responses and genuine estimates before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in the same workday. ## Completion From 368d6be375abd5edd061658af86f359a853f6bcf Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 14:20:24 -0400 Subject: [PATCH 385/501] docs(platform): record post-freeze SDK retry four --- docs/agent-acceptance.md | 4 ++-- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 968db5a5..101a8d92 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -771,8 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 3 | current retry-3 freeze recorded | Platform #520; manifest `sha256:6b812ab853af8c565b8e590281b5ace17346ae4bd3b04d3ccaa5e0795a0b0f2c` | Exact refs and external baseline recorded for the current SDK retry; later source changes require a new freeze before any fresh run. | -| SDK | workday-cee24b4d-3122-4b5f-b067-672aa5491759 | 18 | retry-3 running; golden not passed | Platform #520; API #388/#390, PR #389 | Eight-role chat posted before voting; durable responses, governed estimates, accepted decision, acting/review cycle, settlement, and teardown remain unproven. | +| Preflight | — | 4 | retry-4 Stage 0 freeze recorded | Platform #520; manifest `sha256:e41074b3ed881a73bb79261f7704f91f8fe3cff4cddf6cc1050137b0a711ac5f` | Exact refs and external baseline recorded after API #389 merged to staging; no runtime source change is permitted during the run. | +| SDK | workday-9dd43fef-5c84-4071-8a51-8078e16aec45 | 19 | retry-4 running; golden not passed | Platform #520; API #388/#390, PR #389 | Eight-agent chat posted before voting from the post-merge freeze. Durable responses, estimates, decision, acting/review, settlement, and teardown remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 29982617..fb42af61 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. The prior SDK retry completed eight first-cycle planning turns and seven genuine estimators; retry-3 is running the eight-role chat probe before decision. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). +- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-2 completed eight first-cycle planning turns and seven genuine estimators; retry-3 proved the workday-bound chat path but was stopped after a mid-run API repair invalidated its freeze. A fresh retry-4 Stage 0 freeze is recorded. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). ### Current active blocker -- No current provider or runtime outage is known. Retry-3 has not yet proved completed second planning cycle, acting, paired review, settlement, or clean teardown (Platform #520). +- No current provider or runtime outage is known. Retry-3 is terminal and retry-4 is running with the ordinary capability supply. No SDK run has proved acting, paired review, settlement, or clean teardown (Platform #520). ### Next acceptance milestone -- Verify retry-3 planning, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. +- Verify retry-4 planning, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2303fda7..4b91aa82 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The prior SDK retry reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but was stopped before acting acceptance. Retry-3 retains the six fixed work items and has posted the required eight-role Discussion before voting. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. +- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-3 proved workday-bound Discussion authoring, then stopped because a live API repair invalidated its freeze. Retry-4 preserves the six fixed work items and has a fresh Stage 0 freeze. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. ### Current active blocker -- No active content-authority blocker remains. Eight addressed chat invocations are running; their responses and the retry-3 governed estimates are not yet complete (Platform #520). +- No active content-authority blocker remains. Retry-4 is running from the fresh Stage 0 freeze; the eight-role chat is posted before voting, while durable responses and estimates remain outstanding (Platform #520). ### Next acceptance milestone -- Verify eight durable chat responses and genuine estimates before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in the same workday. +- Verify eight durable chat responses and genuine estimates before decision in retry-4, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in the same workday. ## Completion From e5075d0ceb6c4c66284314721efc2e869b4cd0ac Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 14:47:04 -0400 Subject: [PATCH 386/501] docs(platform): record estimator citation acceptance failure --- docs/agent-acceptance.md | 4 ++-- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 101a8d92..5aef7e5e 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -771,8 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 4 | retry-4 Stage 0 freeze recorded | Platform #520; manifest `sha256:e41074b3ed881a73bb79261f7704f91f8fe3cff4cddf6cc1050137b0a711ac5f` | Exact refs and external baseline recorded after API #389 merged to staging; no runtime source change is permitted during the run. | -| SDK | workday-9dd43fef-5c84-4071-8a51-8078e16aec45 | 19 | retry-4 running; golden not passed | Platform #520; API #388/#390, PR #389 | Eight-agent chat posted before voting from the post-merge freeze. Durable responses, estimates, decision, acting/review, settlement, and teardown remain unproven. | +| Preflight | — | 4 | retry-4 freeze spent; next freeze pending | Platform #520; manifest `sha256:e41074b3ed881a73bb79261f7704f91f8fe3cff4cddf6cc1050137b0a711ac5f` | Exact refs were valid for retry-4. Agent #148 changes the runtime; capture new refs and digest before another run. | +| SDK | workday-9dd43fef-5c84-4071-8a51-8078e16aec45 | 19 | retry-4 stopped; golden not passed | Platform #520; Agent #148 / PR #149 | Eight chat replies and eight first-cycle planning turns completed. First Architect estimator failed a required predecessor citation; no accepted decision or acting result. Refreeze after the bounded Agent repair. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index fb42af61..1c68f345 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-2 completed eight first-cycle planning turns and seven genuine estimators; retry-3 proved the workday-bound chat path but was stopped after a mid-run API repair invalidated its freeze. A fresh retry-4 Stage 0 freeze is recorded. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). +- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-4 proved eight chat replies and eight planning turns under the post-API-merge freeze, then failed the first estimator's strict predecessor check. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). ### Current active blocker -- No current provider or runtime outage is known. Retry-3 is terminal and retry-4 is running with the ordinary capability supply. No SDK run has proved acting, paired review, settlement, or clean teardown (Platform #520). +- No provider outage or memory error is known. Retry-4's Architect estimating completion omitted one of eight required predecessor citations and failed in the guest; Agent #148 / PR #149 is under development rebuild. No SDK run has proved acting, paired review, settlement, or clean teardown (Platform #520). ### Next acceptance milestone -- Verify retry-4 planning, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. +- Re-freeze after the Agent repair and verify planning, complete predecessor synthesis, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 4b91aa82..209d1cbf 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-3 proved workday-bound Discussion authoring, then stopped because a live API repair invalidated its freeze. Retry-4 preserves the six fixed work items and has a fresh Stage 0 freeze. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. +- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-3 proved workday-bound Discussion authoring. Retry-4 proved eight chat replies and first-cycle planning, but failed in estimation; its freeze is invalid after the Agent repair. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. ### Current active blocker -- No active content-authority blocker remains. Retry-4 is running from the fresh Stage 0 freeze; the eight-role chat is posted before voting, while durable responses and estimates remain outstanding (Platform #520). +- Retry-4 returned all eight role-specific chat replies, but the first Architect estimator failed a required predecessor citation before any proposal update. Agent #148 / PR #149 owns this result defect; no content-authority failure is known (Platform #520). ### Next acceptance milestone -- Verify eight durable chat responses and genuine estimates before decision in retry-4, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in the same workday. +- After the Agent repair and fresh freeze, verify eight durable chat replies and seven genuine estimates before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one workday. ## Completion From dabf5fc36374dcb53c1472af5b5920ca7d45e647 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 14:55:28 -0400 Subject: [PATCH 387/501] docs(platform): refreeze SDK golden after Agent repair --- docs/agent-acceptance.md | 4 ++-- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 5aef7e5e..a6429553 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -771,8 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 4 | retry-4 freeze spent; next freeze pending | Platform #520; manifest `sha256:e41074b3ed881a73bb79261f7704f91f8fe3cff4cddf6cc1050137b0a711ac5f` | Exact refs were valid for retry-4. Agent #148 changes the runtime; capture new refs and digest before another run. | -| SDK | workday-9dd43fef-5c84-4071-8a51-8078e16aec45 | 19 | retry-4 stopped; golden not passed | Platform #520; Agent #148 / PR #149 | Eight chat replies and eight first-cycle planning turns completed. First Architect estimator failed a required predecessor citation; no accepted decision or acting result. Refreeze after the bounded Agent repair. | +| Preflight | — | 5 | retry-5 Stage 0 freeze recorded | Platform #520; manifest `sha256:94528ef8cf501317d9761c4258fae8e21138cc9d0e62bf17ccfc46e491cdc08d` | Exact refs, external state, allocation inputs, and managed guest image were recaptured after Agent #149 merged. | +| SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 running; golden not passed | Platform #520; Agent #148 / PR #149 | Pre-vote eight-role chat is posted; durable replies, genuine estimates, decision, acting/review, settlement, and teardown remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1c68f345..f431ceea 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-4 proved eight chat replies and eight planning turns under the post-API-merge freeze, then failed the first estimator's strict predecessor check. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). +- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-4 proved eight chat replies and eight planning turns, then failed the first estimator's strict predecessor check. The bounded Agent prompt repair is merged; retry-5 runs against a new guest-image digest. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). ### Current active blocker -- No provider outage or memory error is known. Retry-4's Architect estimating completion omitted one of eight required predecessor citations and failed in the guest; Agent #148 / PR #149 is under development rebuild. No SDK run has proved acting, paired review, settlement, or clean teardown (Platform #520). +- No provider outage or memory error is known. Retry-5 has not yet proved predecessor synthesis, acting, paired review, settlement, or clean teardown (Platform #520). ### Next acceptance milestone -- Re-freeze after the Agent repair and verify planning, complete predecessor synthesis, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. +- Verify retry-5 planning, complete predecessor synthesis, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 209d1cbf..34123601 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-3 proved workday-bound Discussion authoring. Retry-4 proved eight chat replies and first-cycle planning, but failed in estimation; its freeze is invalid after the Agent repair. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. +- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-4 proved eight chat replies and first-cycle planning, but failed in estimation. Retry-5 is running from a fresh post-repair freeze with the same six fixed work items. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. ### Current active blocker -- Retry-4 returned all eight role-specific chat replies, but the first Architect estimator failed a required predecessor citation before any proposal update. Agent #148 / PR #149 owns this result defect; no content-authority failure is known (Platform #520). +- Agent #148 / PR #149 repaired the bounded estimator prompt without weakening citation validation. Retry-5 has not yet proved eight replies, genuine estimates, or decision readiness (Platform #520). ### Next acceptance milestone -- After the Agent repair and fresh freeze, verify eight durable chat replies and seven genuine estimates before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one workday. +- Verify eight durable chat replies and seven genuine estimates in retry-5 before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one workday. ## Completion From 55fa11a19c6ec60cdcd56a10675b237d5f5453e9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 15:52:34 -0400 Subject: [PATCH 388/501] docs: record SDK golden retry evidence without overstating acceptance --- docs/agent-acceptance.md | 4 +++- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index a6429553..82f24781 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -772,7 +772,9 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| | Preflight | — | 5 | retry-5 Stage 0 freeze recorded | Platform #520; manifest `sha256:94528ef8cf501317d9761c4258fae8e21138cc9d0e62bf17ccfc46e491cdc08d` | Exact refs, external state, allocation inputs, and managed guest image were recaptured after Agent #149 merged. | -| SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 running; golden not passed | Platform #520; Agent #148 / PR #149 | Pre-vote eight-role chat is posted; durable replies, genuine estimates, decision, acting/review, settlement, and teardown remain unproven. | +| SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 stopped; golden not passed | Platform #520; API #391 / PR #392 | Eight durable chat replies and eight first-cycle planning assignments passed. The first genuine estimate was committed but not reconciled into the proposal because the workday discussion branch and proposal source had different heads. API branch custody is repaired; retry-6 is being refrozen. | +| Preflight | — | 6 | retry-6 Stage 0 freeze recorded | Platform #520; manifest `sha256:ca1cbc5f2aceaf430e99826fe895d02ecf9c2549462d36f7b5086d950adbf3ad` | 17 proposals, 136 agents, 25 allocation inputs, exact refs, managed guest image, and external baseline were validated. | +| SDK | workday-94762fad-18e5-4b02-93e0-96bc78533278 | 20 | retry-6 stopped; golden not passed | Platform #520; API PR #392 | Fresh estimate-free proposal and workday started from the frozen campaign; first planning Kata guest exited 137 after about 75 seconds. Classification is pending; no genuine estimate or decision was accepted. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f431ceea..a9107d90 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-4 proved eight chat replies and eight planning turns, then failed the first estimator's strict predecessor check. The bounded Agent prompt repair is merged; retry-5 runs against a new guest-image digest. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137 (Platform #520). +- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-5 proved eight first-cycle planning assignments with timing checks and TreeDX output. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137. This does not prove all profiles or the full lifecycle (Platform #520). ### Current active blocker -- No provider outage or memory error is known. Retry-5 has not yet proved predecessor synthesis, acting, paired review, settlement, or clean teardown (Platform #520). +- Retry-6 first planning guest exited 137 about 75 seconds into a 180-second turn. Host RAM was available; guest OOM versus lease/source-deadline kill is not yet established. Provider execution, accounting, and clean teardown through the complete SDK golden path remain unproven (Platform #520). ### Next acceptance milestone -- Verify retry-5 planning, complete predecessor synthesis, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; then proceed to API and concurrent simulation. +- Classify the guest kill, then refreeze and verify provider execution, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle before API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 34123601..7cfa5049 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Retry-2 reached governed proposal v8, an independent Reviewer disposition, exact accepted decision, and twelve projected Actor/Reviewer nodes, but stopped before acting acceptance. Retry-4 proved eight chat replies and first-cycle planning, but failed in estimation. Retry-5 is running from a fresh post-repair freeze with the same six fixed work items. No complete golden lifecycle has passed (Platform #520). Allocation and provider evidence belong in `agent-architecture.md`. +- The SDK golden has not passed. Retry-5 proved eight durable role-specific chat replies and eight first-cycle planning assignments. Its first genuine estimate could not enter proposal governance because proposal publication collided with the workday discussion branch; API #391 / PR #392 repaired branch custody. Retry-6 retained the six fixed work items but stopped after its first planning guest exited 137 (Platform #520). ### Current active blocker -- Agent #148 / PR #149 repaired the bounded estimator prompt without weakening citation validation. Retry-5 has not yet proved eight replies, genuine estimates, or decision readiness (Platform #520). +- The retry-6 sandbox kill must be classified before another frozen replay. Live read-back of seven estimates entering one governed proposal remains unproven (Platform #520). ### Next acceptance milestone -- Verify eight durable chat replies and seven genuine estimates in retry-5 before decision, then prove generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one workday. +- Refreeze after classifying the sandbox kill, then prove seven genuine estimates, accepted decision, generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one SDK workday. ## Completion From ab65a42605a9b2b49b775a005190bc7d8d647e70 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 16:13:56 -0400 Subject: [PATCH 389/501] docs: record frozen SDK golden retry seven and open boundary --- docs/agent-acceptance.md | 2 ++ docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 82f24781..cebe1468 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -775,6 +775,8 @@ The agent running this campaign must update only this section's checkboxes and t | SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 stopped; golden not passed | Platform #520; API #391 / PR #392 | Eight durable chat replies and eight first-cycle planning assignments passed. The first genuine estimate was committed but not reconciled into the proposal because the workday discussion branch and proposal source had different heads. API branch custody is repaired; retry-6 is being refrozen. | | Preflight | — | 6 | retry-6 Stage 0 freeze recorded | Platform #520; manifest `sha256:ca1cbc5f2aceaf430e99826fe895d02ecf9c2549462d36f7b5086d950adbf3ad` | 17 proposals, 136 agents, 25 allocation inputs, exact refs, managed guest image, and external baseline were validated. | | SDK | workday-94762fad-18e5-4b02-93e0-96bc78533278 | 20 | retry-6 stopped; golden not passed | Platform #520; API PR #392 | Fresh estimate-free proposal and workday started from the frozen campaign; first planning Kata guest exited 137 after about 75 seconds. Classification is pending; no genuine estimate or decision was accepted. | +| Preflight | — | 7 | retry-7 Stage 0 freeze recorded | Platform #520; manifest `sha256:38e724b352b02d94350cbadd6e73b9fe4b8e874ad4d4806558ef32caa75554a9` | Exact development host generation, refs, guest image, external state, 17 proposals, 136 agents, and 25 allocation inputs were validated. | +| SDK | workday-5afbaf8d-43e9-452d-8291-04393cd7ae57 | 20 | retry-7 running; golden not passed | Platform #520; Deployment #774 / PR #775 | First Architect and Engineer planning assignments completed; the required eight-role pre-vote discussion is in progress. No estimate, decision, or acting/review acceptance yet. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a9107d90..2e6a2402 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,11 +550,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Retry-6 first planning guest exited 137 about 75 seconds into a 180-second turn. Host RAM was available; guest OOM versus lease/source-deadline kill is not yet established. Provider execution, accounting, and clean teardown through the complete SDK golden path remain unproven (Platform #520). +- Retry-6 first planning guest exited 137 about 75 seconds into a 180-second turn. Host RAM was available; guest OOM versus broker authority kill remains unproven. Deployment #774 / PR #775 now reports the broker termination reason and is active in development mode. Retry-7 first Architect and Engineer planning assignments completed; this does not prove the full lifecycle (Platform #520). ### Next acceptance milestone -- Classify the guest kill, then refreeze and verify provider execution, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle before API and concurrent simulation. +- Verify retry-7 provider execution, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; classify any repeated guest kill before API and concurrent simulation. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 7cfa5049..35bb72f0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The SDK golden has not passed. Retry-5 proved eight durable role-specific chat replies and eight first-cycle planning assignments. Its first genuine estimate could not enter proposal governance because proposal publication collided with the workday discussion branch; API #391 / PR #392 repaired branch custody. Retry-6 retained the six fixed work items but stopped after its first planning guest exited 137 (Platform #520). +- The SDK golden has not passed. Retry-5 proved eight chat replies and eight first-cycle planning assignments but its first genuine estimate could not enter proposal governance; API #391 / PR #392 repaired proposal branch custody. Retry-6 stopped after its first planning guest exited 137. Retry-7 retains the six fixed work items and is running from a new Stage 0 freeze (Platform #520). ### Current active blocker -- The retry-6 sandbox kill must be classified before another frozen replay. Live read-back of seven estimates entering one governed proposal remains unproven (Platform #520). +- No assignment-path blocker is currently known; seven genuine estimates entering one governed proposal remain unproven. Retry-6 sandbox termination classification belongs in `agent-architecture.md` (Platform #520). ### Next acceptance milestone -- Refreeze after classifying the sandbox kill, then prove seven genuine estimates, accepted decision, generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one SDK workday. +- Complete retry-7 pre-vote discussion and seven genuine estimates, then prove accepted decision, generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one SDK workday. ## Completion From f23dcecbb9fc5f8ba2d16406f9c8ccb2cfecbd2f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 22:15:51 -0400 Subject: [PATCH 390/501] Track agent architecture cutover gaps and exact graph contracts --- docs/agent-architecture.md | 6 +-- docs/agent-assignments.md | 6 +-- docs/agent-gaps.md | 7 +++ docs/agent.schema.yml | 96 +++++++++++++++++++++++++++++++++----- 4 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 docs/agent-gaps.md diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 2e6a2402..ed5a7a21 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Canonical policy, graph-only admission, explicit workday mode, allocation explanations, and terminal accounting remain active in development mode. Retry-5 proved eight first-cycle planning assignments with timing checks and TreeDX output. The managed Codex Kata guest reads back a 4 GiB limit without a repeated exit 137. This does not prove all profiles or the full lifecycle (Platform #520). +- One AgentKernel/handler path, capability accounting, and workday admission have focused tests. Provider-global polling now uses persisted daily team usage and lease order; SDK (336), API (1,087), and Agent (185) tests and eight PostgreSQL suites pass. This does not prove the full lifecycle (Platform #520). ### Current active blocker -- Retry-6 first planning guest exited 137 about 75 seconds into a 180-second turn. Host RAM was available; guest OOM versus broker authority kill remains unproven. Deployment #774 / PR #775 now reports the broker termination reason and is active in development mode. Retry-7 first Architect and Engineer planning assignments completed; this does not prove the full lifecycle (Platform #520). +- The Architect's governed Architecture-book contract still needs TreeDX content verification; the local API currently returns HTTP 502, so library inspection is unavailable. Schema equivalence remains an implementation gap in `agent-gaps.md`. ### Next acceptance milestone -- Verify retry-7 provider execution, capacity accounting, and exact workspace enforcement through the SDK golden lifecycle; classify any repeated guest kill before API and concurrent simulation. +- Verify provider execution, capacity accounting, and exact workspace enforcement in the unchanged SDK golden lifecycle. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 35bb72f0..e7ab86b0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- The SDK golden has not passed. Retry-5 proved eight chat replies and eight first-cycle planning assignments but its first genuine estimate could not enter proposal governance; API #391 / PR #392 repaired proposal branch custody. Retry-6 stopped after its first planning guest exited 137. Retry-7 retains the six fixed work items and is running from a new Stage 0 freeze (Platform #520). +- Proposal, estimate, one-graph projection, exact TreeDX `depends_on` intake, endpoint-grant denial, and PostgreSQL admission/settlement have focused tests; TreeDX PR #65 merged to staging. The SDK golden has not passed (Platform #520). ### Current active blocker -- No assignment-path blocker is currently known; seven genuine estimates entering one governed proposal remain unproven. Retry-6 sandbox termination classification belongs in `agent-architecture.md` (Platform #520). +- Planned graph conditions conflict with the current proposal lifecycle: drafts are excluded from the graph, while blockers must be cleared before readiness. Resolve that gate ownership before projecting question/authority conditions; see `agent-gaps.md`. Real TreeDX-to-API read-back remains unproven. ### Next acceptance milestone -- Complete retry-7 pre-vote discussion and seven genuine estimates, then prove accepted decision, generated Actor → Reviewer → request-changes revision → re-review → approval, settlement, and cleanup in one SDK workday. +- Run the unchanged SDK golden from discussion and genuine estimates through decision, Actor → Reviewer revision, approval, settlement, and cleanup. ## Completion diff --git a/docs/agent-gaps.md b/docs/agent-gaps.md new file mode 100644 index 00000000..3834c231 --- /dev/null +++ b/docs/agent-gaps.md @@ -0,0 +1,7 @@ +# Agent architecture implementation gaps + +Temporary working list for local code and contract closure before the golden acceptance campaign. Remove an item only after its owning implementation and focused unit/integration tests pass. The architecture plans and `agent-acceptance.md` retain the full end-to-end gates; this file is not another acceptance authority. + +- [ ] **Living-graph conditions (SDK/API/TreeDX).** Typed exact `depends_on` links are merged in TreeDX staging (PR #65); SDK/API focused tests, PostgreSQL graph/admission/settlement tests, bounded review exhaustion, and cross-project endpoint-grant denial pass. The graph does not yet project governed blocking questions/feedback and authority prerequisites as condition nodes with authoritative state resolution. A live TreeDX/API read-back belongs to the subsequent acceptance campaign. +- [ ] **Schema equivalence and content migration (SDK/API/TreeDX/Platform).** SDK/API/CLI execution contracts and clean PostgreSQL migration/admission/settlement tests pass, but `docs/agent.schema.yml` lacks an automated structural-equivalence gate. Its Book, Knowledge, Objective, Discussion, and DiscussionMessage shapes differ from persisted TreeDX content. Migrate those models to the plan's exact-reference shapes while preserving existing knowledge slug, order, visibility, and publication features; update consumers and existing content, then verify the cutover without compatibility aliases. Managed host migration belongs to acceptance. +- [ ] **Architect knowledge convention (TreeDX/Agent).** Profile inspection and project-owned handler build/selection have focused tests. The Architect must maintain the conventional ` Architecture` book through ordinary governed TreeDX operations; its prompt/content contract and localized verification remain unproven. The local API is currently HTTP 502 because its container reports `API_ENTRYPOINT_MIGRATIONS_FAILED`; do not treat empty TreeDX reads as authoritative. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 545ca373..660c7ad7 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -252,6 +252,20 @@ $defs: required: [url] additionalProperties: false + ExactWorkItemReference: + allOf: + - $ref: "#/$defs/ExactEntityReference" + - type: object + required: [store, model, id, revision, digest, repository, commit, path, anchor] + properties: + store: + const: treedx + model: + const: proposal + anchor: + type: string + pattern: "^work-item/[a-z0-9]+(?:-[a-z0-9]+)*$" + GitReference: type: object required: [kind, repository, commit] @@ -626,43 +640,61 @@ $defs: Book: # Architecture is represented by a conventional " Architecture" book. + # Pages are discovered by their bookRef, not copied into a reverse page list. type: object - required: [schemaVersion, id, projectId, title, summary] + required: [schemaVersion, id, projectId, slug, title, summary, status, visibility, order] properties: schemaVersion: - const: treeseed.book/v2 + const: treeseed.book/v3 id: $ref: "#/$defs/Identifier" projectId: $ref: "#/$defs/Identifier" + slug: + $ref: "#/$defs/Slug" title: $ref: "#/$defs/NonEmptyText" summary: $ref: "#/$defs/NonEmptyText" - pageRefs: - type: array - uniqueItems: true - items: - $ref: "#/$defs/ExactEntityReference" + description: + $ref: "#/$defs/NonEmptyText" + status: + enum: [draft, review, published, archived] + visibility: + enum: [public, authenticated, team, project, admin] + order: + type: integer + minimum: 0 additionalProperties: false Knowledge: # Validated page content within a book, including architecture knowledge. type: object - required: [schemaVersion, id, projectId, bookRef, title, body] + required: [schemaVersion, id, projectId, bookRef, slug, title, body, status, visibility] properties: schemaVersion: - const: treeseed.knowledge-page/v1 + const: treeseed.knowledge-page/v2 id: $ref: "#/$defs/Identifier" projectId: $ref: "#/$defs/Identifier" bookRef: $ref: "#/$defs/ExactEntityReference" + slug: + $ref: "#/$defs/Slug" title: $ref: "#/$defs/NonEmptyText" body: $ref: "#/$defs/NonEmptyText" + summary: + $ref: "#/$defs/NonEmptyText" + status: + enum: [draft, review, published, archived] + visibility: + enum: [public, authenticated, team, project, admin] + order: + type: integer + minimum: 0 relatedRefs: type: array uniqueItems: true @@ -875,6 +907,19 @@ $defs: $ref: "#/$defs/ExactEntityReference" body: $ref: "#/$defs/NonEmptyText" + links: + type: array + items: + type: object + required: [relation, from, to] + properties: + relation: + const: depends_on + from: + $ref: "#/$defs/ExactWorkItemReference" + to: + $ref: "#/$defs/ExactWorkItemReference" + additionalProperties: false createdAt: $ref: "#/$defs/Timestamp" allOf: @@ -1400,6 +1445,22 @@ $defs: $ref: "#/$defs/NonNegativeSeconds" additionalProperties: false + AssignmentTimingAwarenessReceipt: + type: object + required: [schemaVersion, requiredChecks, completedChecks, firstTool, + firstToolSucceeded, lastTool, lastToolSucceeded, firstToolCompliant, finalToolCompliant] + properties: + schemaVersion: {const: treeseed.assignment-timing-awareness/v1} + requiredChecks: {const: 2} + completedChecks: {type: integer, minimum: 2} + firstTool: {const: 'treedx:treeseed_time_status'} + firstToolSucceeded: {const: true} + lastTool: {const: 'treedx:treeseed_time_status'} + lastToolSucceeded: {const: true} + firstToolCompliant: {const: true} + finalToolCompliant: {const: true} + additionalProperties: false + Usage: # Attempt-local observed usage. Settlement is a separate exactly-once record. type: object @@ -1738,8 +1799,6 @@ $defs: $ref: "#/$defs/Timestamp" endedAt: $ref: "#/$defs/Timestamp" - reportRef: - $ref: "#/$defs/ExactEntityReference" additionalProperties: false # --------------------------------------------------------------------------- @@ -1944,7 +2003,7 @@ $defs: toNodeId: $ref: "#/$defs/Identifier" provenance: - enum: [profile-agent, profile-event, work-item, review-pair, governance] + enum: [profile-agent, profile-event, work-item, review-pair, governance, treedx-link] sourceRef: $ref: "#/$defs/ExactEntityReference" graphRevisionCreated: @@ -2021,6 +2080,7 @@ $defs: - projectId - workdayId - nodeId + - agentClass - nodeRevision - graphRevision - sourceRef @@ -2055,6 +2115,11 @@ $defs: $ref: "#/$defs/Identifier" nodeId: $ref: "#/$defs/Identifier" + workItemId: + $ref: "#/$defs/Identifier" + agentClass: + type: string + pattern: "^[a-z][a-z0-9-]*$" nodeRevision: type: integer minimum: 1 @@ -2090,6 +2155,11 @@ $defs: uniqueItems: true items: $ref: "#/$defs/Identifier" + acceptanceCriteria: + type: array + minItems: 1 + items: + $ref: "#/$defs/NonEmptyText" workspace: $ref: "#/$defs/AssignmentWorkspace" estimate: @@ -2256,6 +2326,8 @@ $defs: type: array items: $ref: "#/$defs/Diagnostic" + timingAwareness: + $ref: "#/$defs/AssignmentTimingAwarenessReceipt" completedAt: $ref: "#/$defs/Timestamp" additionalProperties: false From bd854f855d92c1204c2f7e76220b8f66459d4acd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 22:42:58 -0400 Subject: [PATCH 391/501] Record localized proposal graph cutover and remaining conditions --- docs/agent-assignments.md | 2 +- docs/agent-gaps.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index e7ab86b0..83adf115 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Planned graph conditions conflict with the current proposal lifecycle: drafts are excluded from the graph, while blockers must be cleared before readiness. Resolve that gate ownership before projecting question/authority conditions; see `agent-gaps.md`. Real TreeDX-to-API read-back remains unproven. +- Complete draft proposals now project a runnable Reviewer, exact-source feedback and decision conditions, and proposed work. Resolution read-back and draft-to-acting/reopening state transitions pass locally; remaining lifecycle/external conditions and PostgreSQL admission transition are in `agent-gaps.md`. ### Next acceptance milestone diff --git a/docs/agent-gaps.md b/docs/agent-gaps.md index 3834c231..241ffe41 100644 --- a/docs/agent-gaps.md +++ b/docs/agent-gaps.md @@ -2,6 +2,6 @@ Temporary working list for local code and contract closure before the golden acceptance campaign. Remove an item only after its owning implementation and focused unit/integration tests pass. The architecture plans and `agent-acceptance.md` retain the full end-to-end gates; this file is not another acceptance authority. -- [ ] **Living-graph conditions (SDK/API/TreeDX).** Typed exact `depends_on` links are merged in TreeDX staging (PR #65); SDK/API focused tests, PostgreSQL graph/admission/settlement tests, bounded review exhaustion, and cross-project endpoint-grant denial pass. The graph does not yet project governed blocking questions/feedback and authority prerequisites as condition nodes with authoritative state resolution. A live TreeDX/API read-back belongs to the subsequent acceptance campaign. +- [ ] **Living-graph conditions (SDK/API/TreeDX).** Typed exact `depends_on` links are merged in TreeDX staging (PR #65). The API locally projects complete drafts, runnable proposal review, exact-source feedback and decision conditions, and proposed Actor–Reviewer work. Reviewer decisions and resolution messages receive exact TreeDX read-back; missing-source and database-only resolutions fail closed. Draft → review → resolution → decision → acting and blocker reopening pass local graph-state tests; 1,098 control-plane tests and the API build pass. The broader lifecycle/external/approval conditions and PostgreSQL admission transition still need localized closure. Live TreeDX/API read-back belongs to the acceptance campaign. - [ ] **Schema equivalence and content migration (SDK/API/TreeDX/Platform).** SDK/API/CLI execution contracts and clean PostgreSQL migration/admission/settlement tests pass, but `docs/agent.schema.yml` lacks an automated structural-equivalence gate. Its Book, Knowledge, Objective, Discussion, and DiscussionMessage shapes differ from persisted TreeDX content. Migrate those models to the plan's exact-reference shapes while preserving existing knowledge slug, order, visibility, and publication features; update consumers and existing content, then verify the cutover without compatibility aliases. Managed host migration belongs to acceptance. - [ ] **Architect knowledge convention (TreeDX/Agent).** Profile inspection and project-owned handler build/selection have focused tests. The Architect must maintain the conventional ` Architecture` book through ordinary governed TreeDX operations; its prompt/content contract and localized verification remain unproven. The local API is currently HTTP 502 because its container reports `API_ENTRYPOINT_MIGRATIONS_FAILED`; do not treat empty TreeDX reads as authoritative. From 410ffced114c4c2c6c8fe43ad7920d81495f8d49 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 20 Sep 2026 23:49:34 -0400 Subject: [PATCH 392/501] Align agent content schema and gap status --- docs/agent-gaps.md | 4 +- docs/agent.schema.yml | 140 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 138 insertions(+), 6 deletions(-) diff --git a/docs/agent-gaps.md b/docs/agent-gaps.md index 241ffe41..dfbb68da 100644 --- a/docs/agent-gaps.md +++ b/docs/agent-gaps.md @@ -3,5 +3,5 @@ Temporary working list for local code and contract closure before the golden acceptance campaign. Remove an item only after its owning implementation and focused unit/integration tests pass. The architecture plans and `agent-acceptance.md` retain the full end-to-end gates; this file is not another acceptance authority. - [ ] **Living-graph conditions (SDK/API/TreeDX).** Typed exact `depends_on` links are merged in TreeDX staging (PR #65). The API locally projects complete drafts, runnable proposal review, exact-source feedback and decision conditions, and proposed Actor–Reviewer work. Reviewer decisions and resolution messages receive exact TreeDX read-back; missing-source and database-only resolutions fail closed. Draft → review → resolution → decision → acting and blocker reopening pass local graph-state tests; 1,098 control-plane tests and the API build pass. The broader lifecycle/external/approval conditions and PostgreSQL admission transition still need localized closure. Live TreeDX/API read-back belongs to the acceptance campaign. -- [ ] **Schema equivalence and content migration (SDK/API/TreeDX/Platform).** SDK/API/CLI execution contracts and clean PostgreSQL migration/admission/settlement tests pass, but `docs/agent.schema.yml` lacks an automated structural-equivalence gate. Its Book, Knowledge, Objective, Discussion, and DiscussionMessage shapes differ from persisted TreeDX content. Migrate those models to the plan's exact-reference shapes while preserving existing knowledge slug, order, visibility, and publication features; update consumers and existing content, then verify the cutover without compatibility aliases. Managed host migration belongs to acceptance. -- [ ] **Architect knowledge convention (TreeDX/Agent).** Profile inspection and project-owned handler build/selection have focused tests. The Architect must maintain the conventional ` Architecture` book through ordinary governed TreeDX operations; its prompt/content contract and localized verification remain unproven. The local API is currently HTTP 502 because its container reports `API_ENTRYPOINT_MIGRATIONS_FAILED`; do not treat empty TreeDX reads as authoritative. +- [ ] **Schema equivalence and content migration (SDK/API/TreeDX/Platform).** SDK verification detects top-level field, required-field, and constant drift for all five target models; strict nested identifier, slug, exact-reference, uniqueness, Book-page repinning, and Discussion authoring tests pass. The retired allocation migration now safely settles orphaned workdays and the local database cutover has no pending or unexpected migrations. Exhaustive nested declaration verification, remaining consumers, and governed migration of existing library content remain. Managed read-back belongs to acceptance. +- [ ] **Architect knowledge convention (TreeDX/Agent).** Profile inspection and project-owned handler build/selection have focused tests. Architect acting now requires a validated Knowledge page bound to the exact conventional ` Architecture` Book context and ordinary AgentKernel TreeDX commit path; focused prompt, success, and fail-closed tests pass. Existing project libraries still need their conventional Book/page content migrated and read back before this gap can close. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 660c7ad7..0ebf8f8c 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -640,9 +640,10 @@ $defs: Book: # Architecture is represented by a conventional " Architecture" book. - # Pages are discovered by their bookRef, not copied into a reverse page list. + # Pages pin its content revision and digest, avoiding a same-commit hash cycle. + # Pages are discovered by bookRef, not copied into a reverse page list. type: object - required: [schemaVersion, id, projectId, slug, title, summary, status, visibility, order] + required: [schemaVersion, id, projectId, revision, slug, title, summary, status, visibility, order] properties: schemaVersion: const: treeseed.book/v3 @@ -650,6 +651,9 @@ $defs: $ref: "#/$defs/Identifier" projectId: $ref: "#/$defs/Identifier" + revision: + type: integer + minimum: 1 slug: $ref: "#/$defs/Slug" title: @@ -665,10 +669,35 @@ $defs: order: type: integer minimum: 0 + groupIds: + type: array + items: + $ref: "#/$defs/Identifier" + audience: + type: array + items: + $ref: "#/$defs/NonEmptyText" + relatedBookIds: + type: array + items: + $ref: "#/$defs/Identifier" + packPolicy: + enum: [allowed, restricted, disabled] + editorialCoreNoteId: + $ref: "#/$defs/Identifier" + cover: + type: object + properties: + image: + $ref: "#/$defs/NonEmptyText" + alt: + $ref: "#/$defs/NonEmptyText" + additionalProperties: false additionalProperties: false Knowledge: - # Validated page content within a book, including architecture knowledge. + # Parsed Markdown document. `body` is its Markdown body, not a duplicated + # frontmatter field; `bookRef` pins the owning Book path, revision, and digest. type: object required: [schemaVersion, id, projectId, bookRef, slug, title, body, status, visibility] properties: @@ -680,10 +709,14 @@ $defs: $ref: "#/$defs/Identifier" bookRef: $ref: "#/$defs/ExactEntityReference" + # Semantic validation requires store=treedx, model=book, and a + # nonempty path, revision, and digest. The path is within this project. slug: $ref: "#/$defs/Slug" title: $ref: "#/$defs/NonEmptyText" + description: + $ref: "#/$defs/NonEmptyText" body: $ref: "#/$defs/NonEmptyText" summary: @@ -700,6 +733,79 @@ $defs: uniqueItems: true items: $ref: "#/$defs/ExactEntityReference" + parentId: + $ref: "#/$defs/Identifier" + groupIds: + type: array + items: + $ref: "#/$defs/Identifier" + contributors: + type: array + items: + $ref: "#/$defs/Identifier" + relatedBookIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedKnowledgeIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedNoteIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedQuestionIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedObjectiveIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedProposalIds: + type: array + items: + $ref: "#/$defs/Identifier" + relatedDecisionIds: + type: array + items: + $ref: "#/$defs/Identifier" + guaranteeIds: + type: array + items: + $ref: "#/$defs/Identifier" + audiences: + type: object + properties: + primary: { type: array, items: { $ref: "#/$defs/NonEmptyText" } } + secondary: { type: array, items: { $ref: "#/$defs/NonEmptyText" } } + excluded: { type: array, items: { $ref: "#/$defs/NonEmptyText" } } + additionalProperties: false + capabilityIds: + type: array + items: + $ref: "#/$defs/Identifier" + routePatterns: + type: array + items: + $ref: "#/$defs/NonEmptyText" + resourceTypes: + type: array + items: + $ref: "#/$defs/Identifier" + actionIds: + type: array + items: + $ref: "#/$defs/Identifier" + keywords: + type: array + items: + $ref: "#/$defs/NonEmptyText" + documentationUrls: + type: array + items: + $ref: "#/$defs/NonEmptyText" additionalProperties: false Objective: @@ -729,7 +835,7 @@ $defs: Discussion: # Thread metadata only; messages are independently revisioned content. type: object - required: [schemaVersion, id, projectId, subjectRef, status, participantClasses] + required: [schemaVersion, id, projectId, subjectRef, status, participantClasses, title, teamId, createdAt] properties: schemaVersion: const: treeseed.discussion/v1 @@ -746,9 +852,20 @@ $defs: uniqueItems: true items: $ref: "#/$defs/AgentClass" + title: { $ref: "#/$defs/NonEmptyText" } + teamId: { $ref: "#/$defs/Identifier" } + createdAt: { $ref: "#/$defs/Timestamp" } + topic: { $ref: "#/$defs/NonEmptyText" } + visibility: { enum: [public, authenticated, team, project, admin] } + participantIds: { type: array, items: { $ref: "#/$defs/Identifier" } } + agentIds: { type: array, items: { $ref: "#/$defs/Identifier" } } + groupIds: { type: array, items: { $ref: "#/$defs/Identifier" } } + parentWorkdayId: { $ref: "#/$defs/Identifier" } + updatedAt: { $ref: "#/$defs/Timestamp" } additionalProperties: false DiscussionMessage: + # Parsed Markdown document: body is the Markdown body, not duplicated in frontmatter. type: object required: [schemaVersion, id, discussionRef, authorRef, body, createdAt] properties: @@ -766,6 +883,21 @@ $defs: $ref: "#/$defs/ExactEntityReference" createdAt: $ref: "#/$defs/Timestamp" + title: { $ref: "#/$defs/NonEmptyText" } + discussionId: { $ref: "#/$defs/Identifier" } + authorId: { $ref: "#/$defs/Identifier" } + authorType: { enum: [user, agent, system] } + intent: { enum: [discuss, propose] } + mentionedAgents: { type: array, items: { $ref: "#/$defs/Identifier" } } + recipientIds: { type: array, items: { $ref: "#/$defs/Identifier" } } + fileRefs: { type: array, items: { type: object } } + contextRefs: { type: array, items: { type: object } } + inboxIntent: { enum: [comment, answer, reply] } + sourceMessageRefs: { type: array, items: { $ref: "#/$defs/ExactEntityReference" } } + authorAgentId: { $ref: "#/$defs/Identifier" } + handoffId: { $ref: "#/$defs/Identifier" } + parentWorkdayId: { $ref: "#/$defs/Identifier" } + resultingOperationId: { $ref: "#/$defs/Identifier" } additionalProperties: false Proposal: From b915481e979673adaf418ccaa42912bffe03e857 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 21 Sep 2026 00:05:29 -0400 Subject: [PATCH 393/501] Close localized agent architecture gaps --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 2 +- docs/agent-gaps.md | 7 ------- docs/agent.schema.yml | 2 +- 4 files changed, 4 insertions(+), 11 deletions(-) delete mode 100644 docs/agent-gaps.md diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index ed5a7a21..7a794e3d 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,11 +546,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- One AgentKernel/handler path, capability accounting, and workday admission have focused tests. Provider-global polling now uses persisted daily team usage and lease order; SDK (336), API (1,087), and Agent (185) tests and eight PostgreSQL suites pass. This does not prove the full lifecycle (Platform #520). +- One AgentKernel/handler path, capability accounting, workday admission, project-owned handler selection, exact Architect Book output, and fail-closed runtime boundaries have focused tests. SDK (340), API (1,100), and Agent (186) tests pass. This does not prove the full lifecycle (Platform #520). ### Current active blocker -- The Architect's governed Architecture-book contract still needs TreeDX content verification; the local API currently returns HTTP 502, so library inspection is unavailable. Schema equivalence remains an implementation gap in `agent-gaps.md`. +- No localized AgentKernel implementation blocker is active. Exhaustive structural schema verification and focused semantic tests pass; governed Architecture-book read-back belongs to the golden acceptance preflight. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 83adf115..31470a7c 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Complete draft proposals now project a runnable Reviewer, exact-source feedback and decision conditions, and proposed work. Resolution read-back and draft-to-acting/reopening state transitions pass locally; remaining lifecycle/external conditions and PostgreSQL admission transition are in `agent-gaps.md`. +- No localized living-graph implementation blocker is active: focused tests cover complete-draft review, exact question/authority/external/lifecycle conditions, deterministic dependency projection, transactional PostgreSQL admission, review-cycle recovery, and exactly-once settlement. Live lifecycle proof remains an acceptance task. ### Next acceptance milestone diff --git a/docs/agent-gaps.md b/docs/agent-gaps.md deleted file mode 100644 index dfbb68da..00000000 --- a/docs/agent-gaps.md +++ /dev/null @@ -1,7 +0,0 @@ -# Agent architecture implementation gaps - -Temporary working list for local code and contract closure before the golden acceptance campaign. Remove an item only after its owning implementation and focused unit/integration tests pass. The architecture plans and `agent-acceptance.md` retain the full end-to-end gates; this file is not another acceptance authority. - -- [ ] **Living-graph conditions (SDK/API/TreeDX).** Typed exact `depends_on` links are merged in TreeDX staging (PR #65). The API locally projects complete drafts, runnable proposal review, exact-source feedback and decision conditions, and proposed Actor–Reviewer work. Reviewer decisions and resolution messages receive exact TreeDX read-back; missing-source and database-only resolutions fail closed. Draft → review → resolution → decision → acting and blocker reopening pass local graph-state tests; 1,098 control-plane tests and the API build pass. The broader lifecycle/external/approval conditions and PostgreSQL admission transition still need localized closure. Live TreeDX/API read-back belongs to the acceptance campaign. -- [ ] **Schema equivalence and content migration (SDK/API/TreeDX/Platform).** SDK verification detects top-level field, required-field, and constant drift for all five target models; strict nested identifier, slug, exact-reference, uniqueness, Book-page repinning, and Discussion authoring tests pass. The retired allocation migration now safely settles orphaned workdays and the local database cutover has no pending or unexpected migrations. Exhaustive nested declaration verification, remaining consumers, and governed migration of existing library content remain. Managed read-back belongs to acceptance. -- [ ] **Architect knowledge convention (TreeDX/Agent).** Profile inspection and project-owned handler build/selection have focused tests. Architect acting now requires a validated Knowledge page bound to the exact conventional ` Architecture` Book context and ordinary AgentKernel TreeDX commit path; focused prompt, success, and fail-closed tests pass. Existing project libraries still need their conventional Book/page content migrated and read back before this gap can close. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 0ebf8f8c..2e00dab3 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -893,7 +893,7 @@ $defs: fileRefs: { type: array, items: { type: object } } contextRefs: { type: array, items: { type: object } } inboxIntent: { enum: [comment, answer, reply] } - sourceMessageRefs: { type: array, items: { $ref: "#/$defs/ExactEntityReference" } } + sourceMessageRefs: { type: array, uniqueItems: true, items: { $ref: "#/$defs/ExactEntityReference" } } authorAgentId: { $ref: "#/$defs/Identifier" } handoffId: { $ref: "#/$defs/Identifier" } parentWorkdayId: { $ref: "#/$defs/Identifier" } From a988457f22cbcfae8f6c1ecec2dc5d73aba7ac96 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 22 Sep 2026 00:41:08 -0400 Subject: [PATCH 394/501] docs: gate agent golden campaign with verified intermediate preflight --- docs/agent-acceptance.md | 10 +++----- docs/agent-intermediate-plan.md | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 docs/agent-intermediate-plan.md diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index cebe1468..eb115f86 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -264,7 +264,7 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent` +- `id`: `golden-sdk-decision-governed-workday-intent-v2` (the original ID was superseded before this freeze; objectives and topology are unchanged) - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Preserve them in normalization and preflight digests. They select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. @@ -771,12 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 5 | retry-5 Stage 0 freeze recorded | Platform #520; manifest `sha256:94528ef8cf501317d9761c4258fae8e21138cc9d0e62bf17ccfc46e491cdc08d` | Exact refs, external state, allocation inputs, and managed guest image were recaptured after Agent #149 merged. | -| SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 stopped; golden not passed | Platform #520; API #391 / PR #392 | Eight durable chat replies and eight first-cycle planning assignments passed. The first genuine estimate was committed but not reconciled into the proposal because the workday discussion branch and proposal source had different heads. API branch custody is repaired; retry-6 is being refrozen. | -| Preflight | — | 6 | retry-6 Stage 0 freeze recorded | Platform #520; manifest `sha256:ca1cbc5f2aceaf430e99826fe895d02ecf9c2549462d36f7b5086d950adbf3ad` | 17 proposals, 136 agents, 25 allocation inputs, exact refs, managed guest image, and external baseline were validated. | -| SDK | workday-94762fad-18e5-4b02-93e0-96bc78533278 | 20 | retry-6 stopped; golden not passed | Platform #520; API PR #392 | Fresh estimate-free proposal and workday started from the frozen campaign; first planning Kata guest exited 137 after about 75 seconds. Classification is pending; no genuine estimate or decision was accepted. | -| Preflight | — | 7 | retry-7 Stage 0 freeze recorded | Platform #520; manifest `sha256:38e724b352b02d94350cbadd6e73b9fe4b8e874ad4d4806558ef32caa75554a9` | Exact development host generation, refs, guest image, external state, 17 proposals, 136 agents, and 25 allocation inputs were validated. | -| SDK | workday-5afbaf8d-43e9-452d-8291-04393cd7ae57 | 20 | retry-7 running; golden not passed | Platform #520; Deployment #774 / PR #775 | First Architect and Engineer planning assignments completed; the required eight-role pre-vote discussion is in progress. No estimate, decision, or acting/review acceptance yet. | +| Preflight | — | 8 | Intermediate SDK gate passed; full Stage 0 freeze pending | Platform #520; local SDK freeze `sha256:d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419` | SDK inputs and read-only CLI request validate; refresh the all-project campaign manifest and external-state inventory before creating a golden workday. | +| SDK | — | 0 | canonical golden not started | Platform #520; proposal `golden-sdk-decision-governed-workday-intent-v2`; SDK library `65106c908bca127ea45d11b3f6b54905878d191c` | Intermediate fixture and role contracts pass, but real planning, estimates, review, acting, and settlement remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md new file mode 100644 index 00000000..df929514 --- /dev/null +++ b/docs/agent-intermediate-plan.md @@ -0,0 +1,42 @@ +# Agent acceptance preflight + +**Purpose:** make the first real SDK golden workday admissible without spending another full workday discovering a missing source, grant, guest image, or campaign authority. This is a temporary gate before returning to [`agent-acceptance.md`](./agent-acceptance.md), not a substitute acceptance campaign. Detailed defects and run evidence belong in Platform Issue #520 and owning-package tests/PRs. + +## Rules + +- Keep the six SDK work-item objectives, dependencies, review cycles, permissions, and acceptance criteria from `agent-acceptance.md` unchanged. Use one new canonical proposal ID because the specified ID is already superseded; record that one correction in the acceptance campaign freeze. Do not create another chain of diagnostic retry proposals. +- Use one published TreeDX source commit and explicit exact Book references; never infer an Architecture Book from a library root or a moving branch. +- Run focused tests and development-mode builds first. Do not cut an RC, run a full workday, or weaken a schema to pass preflight. +- Treat an intermediate pass as permission to *start* the SDK golden, not as evidence that any golden stage passed. + +## Gates + +### 1. Published content and immutable authority + +- [x] Publish the SDK Core Book and Core Objective in current schemas without losing the objective text. Read-back: SDK library `65106c908bca127ea45d11b3f6b54905878d191c`. +- [x] Read the SDK Architecture Book at the same published library commit. Its exact `books/architecture.md` content is available. +- [x] Freeze one replacement SDK proposal ID and exact proposal bytes. The original `golden-sdk-decision-governed-workday-intent` is superseded; the replacement retains the six fixed work items and adds exact Core and Architecture Book context, without changing their objectives or topology. Local freeze: `.treeseed/acceptance/agent-golden-20260921/sdk-intermediate-freeze.json`. +- [x] Validate the replacement proposal against the current schema and compare its fixed work-item fields to `agent-acceptance.md`. All six objectives match exactly; the governed draft is version 1 with content hash `7a781d0093e4485346d1454420c38fdc659428d158a06c27cc29cf96ad082836`. The local freeze records the source, Book digests, policy revision 1, and provider offer revision 1. + +### 2. Assignment and guest contract + +- [x] An Architect assignment with an exact Architecture Book receives it as a read grant and gets a valid `knowledge//.md` write target. Admission rejects a missing Book. API assignment-builder tests: 18 passing. +- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. Agent guest tests: 39 passing; Agent typecheck passes. +- [x] Exercise the proposal → generated graph → immutable assignment → guest-context transformation in one local integration fixture, asserting exact published Book bytes, write target, timing budget, and no external mutation. The fixture produced 14 nodes, a 180-second Architect allocation, one exact Architecture Book context item, and a constrained Knowledge output at `knowledge/sdk-architecture/knowledge-bb1ba00e45b117114756c0d6.md`. +- [x] Confirm Researcher, Architect, and generated Reviewer output/grant contracts against the frozen proposal before a live workday. The cross-package fixture uses the actual published SDK role profiles, checks requested permissions against their activity ceilings, builds each role's grant, and verifies the Architect Knowledge output schema. This is local contract evidence, not an agent-execution result. + +### 3. Development runtime + +- [x] Replace the CLI's caller-owned `docker image save` path with a manager-owned import/export operation authorized for `treeseed-operators`. The local operator imported `treeseed/sandbox-codex:local` without sudo, `sg`, or Docker membership; manager read-back reports `sha256:2535021bfc679301a36675dbae543376039c7ea6dbdef63593a28788e6e68dee`. Kata guest readiness remains part of the next gate. +- [x] Rebuild and activate the final API service, Agent provider, and Agent sandbox in development mode once the focused changes are batched. Selected generations: API 699, provider 435, sandbox 214, TreeDX 266; all development selections ready. Host reconciliation plans noop and Kata sandbox is ready. The released-component TreeDX view flags `wrong-image` under the live selection; exact TreeDX reads succeed. +- [x] Check provider capability/model remaining supply, Identity authentication, TreeDX exact reads, and writable campaign-local custody immediately before starting the golden. Provider offer revision 1 is healthy with Sol/research 7,200s and Terra/implementation 28,800s ordinary daily caps; CLI authentication, exact Book read, and writable local freeze passed. The latest workday page had no active workday. + +### 4. Return to golden acceptance + +- [x] Update `agent-acceptance.md` only for the one canonical replacement ID and current frozen exact refs; preserve its objectives, stages, and pass criteria. +- [x] Record a passing intermediate preflight receipt in Platform Issue #520 with focused test results, runtime digests, exact refs, and an unchanged external-state baseline. The local freeze SHA-256 is `d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419`. +- [x] Hand the frozen SDK proposal and a schema-valid, read-only `trsd workdays plan --plan` request back to Stage 0 of `agent-acceptance.md`. Starting and judging the SDK → API → joint workdays belongs exclusively to that acceptance plan, after its full campaign freeze; no golden checkbox is marked from this handoff. + +## Current frontier + +Intermediate preflight passed. The SDK workday request with eight canonical class IDs, 20% planning, equal 12.5% class targets, simulation mode, and the one canonical proposal validated through `trsd workdays plan --plan` without creating a workday. Return to Stage 0 of `agent-acceptance.md`: refresh its full all-project campaign manifest and external-state inventory, then create one SDK preflight/workday. A passing fixture is not a passing golden workday; no golden workday has passed. From d6cb15d84befccd30c360be22a3dfbf90d8fc6e7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 22 Sep 2026 00:42:38 -0400 Subject: [PATCH 395/501] docs: gate agent golden campaign with verified intermediate preflight (#549) --- docs/agent-acceptance.md | 10 +++----- docs/agent-intermediate-plan.md | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 docs/agent-intermediate-plan.md diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index cebe1468..eb115f86 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -264,7 +264,7 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent` +- `id`: `golden-sdk-decision-governed-workday-intent-v2` (the original ID was superseded before this freeze; objectives and topology are unchanged) - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Preserve them in normalization and preflight digests. They select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. @@ -771,12 +771,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 5 | retry-5 Stage 0 freeze recorded | Platform #520; manifest `sha256:94528ef8cf501317d9761c4258fae8e21138cc9d0e62bf17ccfc46e491cdc08d` | Exact refs, external state, allocation inputs, and managed guest image were recaptured after Agent #149 merged. | -| SDK | workday-0a888dd7-aaec-4203-af58-7319d9bf9d06 | 20 | retry-5 stopped; golden not passed | Platform #520; API #391 / PR #392 | Eight durable chat replies and eight first-cycle planning assignments passed. The first genuine estimate was committed but not reconciled into the proposal because the workday discussion branch and proposal source had different heads. API branch custody is repaired; retry-6 is being refrozen. | -| Preflight | — | 6 | retry-6 Stage 0 freeze recorded | Platform #520; manifest `sha256:ca1cbc5f2aceaf430e99826fe895d02ecf9c2549462d36f7b5086d950adbf3ad` | 17 proposals, 136 agents, 25 allocation inputs, exact refs, managed guest image, and external baseline were validated. | -| SDK | workday-94762fad-18e5-4b02-93e0-96bc78533278 | 20 | retry-6 stopped; golden not passed | Platform #520; API PR #392 | Fresh estimate-free proposal and workday started from the frozen campaign; first planning Kata guest exited 137 after about 75 seconds. Classification is pending; no genuine estimate or decision was accepted. | -| Preflight | — | 7 | retry-7 Stage 0 freeze recorded | Platform #520; manifest `sha256:38e724b352b02d94350cbadd6e73b9fe4b8e874ad4d4806558ef32caa75554a9` | Exact development host generation, refs, guest image, external state, 17 proposals, 136 agents, and 25 allocation inputs were validated. | -| SDK | workday-5afbaf8d-43e9-452d-8291-04393cd7ae57 | 20 | retry-7 running; golden not passed | Platform #520; Deployment #774 / PR #775 | First Architect and Engineer planning assignments completed; the required eight-role pre-vote discussion is in progress. No estimate, decision, or acting/review acceptance yet. | +| Preflight | — | 8 | Intermediate SDK gate passed; full Stage 0 freeze pending | Platform #520; local SDK freeze `sha256:d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419` | SDK inputs and read-only CLI request validate; refresh the all-project campaign manifest and external-state inventory before creating a golden workday. | +| SDK | — | 0 | canonical golden not started | Platform #520; proposal `golden-sdk-decision-governed-workday-intent-v2`; SDK library `65106c908bca127ea45d11b3f6b54905878d191c` | Intermediate fixture and role contracts pass, but real planning, estimates, review, acting, and settlement remain unproven. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md new file mode 100644 index 00000000..df929514 --- /dev/null +++ b/docs/agent-intermediate-plan.md @@ -0,0 +1,42 @@ +# Agent acceptance preflight + +**Purpose:** make the first real SDK golden workday admissible without spending another full workday discovering a missing source, grant, guest image, or campaign authority. This is a temporary gate before returning to [`agent-acceptance.md`](./agent-acceptance.md), not a substitute acceptance campaign. Detailed defects and run evidence belong in Platform Issue #520 and owning-package tests/PRs. + +## Rules + +- Keep the six SDK work-item objectives, dependencies, review cycles, permissions, and acceptance criteria from `agent-acceptance.md` unchanged. Use one new canonical proposal ID because the specified ID is already superseded; record that one correction in the acceptance campaign freeze. Do not create another chain of diagnostic retry proposals. +- Use one published TreeDX source commit and explicit exact Book references; never infer an Architecture Book from a library root or a moving branch. +- Run focused tests and development-mode builds first. Do not cut an RC, run a full workday, or weaken a schema to pass preflight. +- Treat an intermediate pass as permission to *start* the SDK golden, not as evidence that any golden stage passed. + +## Gates + +### 1. Published content and immutable authority + +- [x] Publish the SDK Core Book and Core Objective in current schemas without losing the objective text. Read-back: SDK library `65106c908bca127ea45d11b3f6b54905878d191c`. +- [x] Read the SDK Architecture Book at the same published library commit. Its exact `books/architecture.md` content is available. +- [x] Freeze one replacement SDK proposal ID and exact proposal bytes. The original `golden-sdk-decision-governed-workday-intent` is superseded; the replacement retains the six fixed work items and adds exact Core and Architecture Book context, without changing their objectives or topology. Local freeze: `.treeseed/acceptance/agent-golden-20260921/sdk-intermediate-freeze.json`. +- [x] Validate the replacement proposal against the current schema and compare its fixed work-item fields to `agent-acceptance.md`. All six objectives match exactly; the governed draft is version 1 with content hash `7a781d0093e4485346d1454420c38fdc659428d158a06c27cc29cf96ad082836`. The local freeze records the source, Book digests, policy revision 1, and provider offer revision 1. + +### 2. Assignment and guest contract + +- [x] An Architect assignment with an exact Architecture Book receives it as a read grant and gets a valid `knowledge//.md` write target. Admission rejects a missing Book. API assignment-builder tests: 18 passing. +- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. Agent guest tests: 39 passing; Agent typecheck passes. +- [x] Exercise the proposal → generated graph → immutable assignment → guest-context transformation in one local integration fixture, asserting exact published Book bytes, write target, timing budget, and no external mutation. The fixture produced 14 nodes, a 180-second Architect allocation, one exact Architecture Book context item, and a constrained Knowledge output at `knowledge/sdk-architecture/knowledge-bb1ba00e45b117114756c0d6.md`. +- [x] Confirm Researcher, Architect, and generated Reviewer output/grant contracts against the frozen proposal before a live workday. The cross-package fixture uses the actual published SDK role profiles, checks requested permissions against their activity ceilings, builds each role's grant, and verifies the Architect Knowledge output schema. This is local contract evidence, not an agent-execution result. + +### 3. Development runtime + +- [x] Replace the CLI's caller-owned `docker image save` path with a manager-owned import/export operation authorized for `treeseed-operators`. The local operator imported `treeseed/sandbox-codex:local` without sudo, `sg`, or Docker membership; manager read-back reports `sha256:2535021bfc679301a36675dbae543376039c7ea6dbdef63593a28788e6e68dee`. Kata guest readiness remains part of the next gate. +- [x] Rebuild and activate the final API service, Agent provider, and Agent sandbox in development mode once the focused changes are batched. Selected generations: API 699, provider 435, sandbox 214, TreeDX 266; all development selections ready. Host reconciliation plans noop and Kata sandbox is ready. The released-component TreeDX view flags `wrong-image` under the live selection; exact TreeDX reads succeed. +- [x] Check provider capability/model remaining supply, Identity authentication, TreeDX exact reads, and writable campaign-local custody immediately before starting the golden. Provider offer revision 1 is healthy with Sol/research 7,200s and Terra/implementation 28,800s ordinary daily caps; CLI authentication, exact Book read, and writable local freeze passed. The latest workday page had no active workday. + +### 4. Return to golden acceptance + +- [x] Update `agent-acceptance.md` only for the one canonical replacement ID and current frozen exact refs; preserve its objectives, stages, and pass criteria. +- [x] Record a passing intermediate preflight receipt in Platform Issue #520 with focused test results, runtime digests, exact refs, and an unchanged external-state baseline. The local freeze SHA-256 is `d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419`. +- [x] Hand the frozen SDK proposal and a schema-valid, read-only `trsd workdays plan --plan` request back to Stage 0 of `agent-acceptance.md`. Starting and judging the SDK → API → joint workdays belongs exclusively to that acceptance plan, after its full campaign freeze; no golden checkbox is marked from this handoff. + +## Current frontier + +Intermediate preflight passed. The SDK workday request with eight canonical class IDs, 20% planning, equal 12.5% class targets, simulation mode, and the one canonical proposal validated through `trsd workdays plan --plan` without creating a workday. Return to Stage 0 of `agent-acceptance.md`: refresh its full all-project campaign manifest and external-state inventory, then create one SDK preflight/workday. A passing fixture is not a passing golden workday; no golden workday has passed. From ea93d1e819c460bf468bfa9397254af1e06a0066 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 05:41:01 -0400 Subject: [PATCH 396/501] docs(agent): align acceptance gates and parallel role authority Refs #520. Keep component evidence distinct from unproven full golden acceptance; use canonical class allocation keys and current dependency ordering. --- docs/agent-acceptance.md | 41 +++++++++++++++++++-------------- docs/agent-architecture.md | 26 ++++++++++----------- docs/agent-assignments.md | 28 +++++++++++----------- docs/agent-intermediate-plan.md | 11 +++++++-- docs/agent.schema.yml | 6 +++-- 5 files changed, 64 insertions(+), 48 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index eb115f86..7cd9f746 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -70,7 +70,7 @@ The campaign manifest is test configuration, not a new control-plane resource. O ### High-level allocation inputs -Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. The campaign manifest must contain one fully expanded, schema-validated workday input for **every** individual project, the SDK/API joint run, the portfolio run, and each controlled failure rerun. The table below is the authoring rule; submit canonical seeded project IDs and agent-class IDs, and retain the exact submitted input and resolved policy snapshot with each run. A table entry is not permission to omit fields from a submitted input. +Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. The campaign manifest must contain one fully expanded, schema-validated workday input for **every** individual project, the SDK/API joint run, the portfolio run, and each controlled failure rerun. The table below is the authoring rule; submit canonical seeded project IDs and canonical `AgentDefinition.agentClass` values, and retain the exact submitted input and resolved policy snapshot with each run. Project-agent-class database row IDs are inventory references, not allocator class keys. A table entry is not permission to omit fields from a submitted input. | Run | Selected projects and `projectPercentages` | `agentClassPercentages` | |---|---|---| @@ -119,7 +119,7 @@ allocation: Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Each assignment read-back must identify its workday-policy snapshot, genuine estimate and rationale, allocator-selected active duration and deadline, limiting constraint, reservation, measured usage, and settlement. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. -For this local campaign, configure `codex-research` with Sol/Medium and a 7,200-active-second daily cap, and `codex-implementation` with Terra/Medium and a 28,800-active-second daily cap. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. +For this local campaign, configure both `codex-research` and `codex-implementation` with Luna/Low to conserve quota, retaining separate 7,200- and 28,800-active-second daily caps respectively. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. For the all-project portfolio run only, calculate required planning, acting, bounded review, and Reporter supply from the individually accepted genuine estimates. If the normal caps cannot support that work inside the eight-hour window at actual safe concurrency, raise test capability/model caps through versioned provider configuration, preflight again, and freeze the exact temporary offer. Never lower a viable assignment minimum or exceed host/model limits to force admission. Restore and verify the ordinary caps after settlement. If the host cannot supply a viable plan, do not start the portfolio workday; report the exact shortfall. @@ -154,6 +154,8 @@ A retry must begin from all of the following original inputs: Failed historical records remain auditable, but they cannot satisfy dependencies in the retry. The new workday receives a new ID. Deterministic source projection must reproduce the same initial graph digest. +Use the existing scoped `trsd workdays stop ` path for an active failed simulation; do not reset the team, provider, or host. Before a retry, read back that run as terminal with zero unfinished/deferred assignments and settlement errors, no team lease belonging to it, and only stale/cancelled graph nodes. Verify its assignment workspaces and sandboxes are closed, and catalog or explicitly discard only that run's local candidate refs under their normal custody rules. If any of these checks cannot be proven, the reset gate remains open and the retry is not accepted. A new workday ID isolates attempts; it does not excuse leaked resources. + ## The canonical proposal lifecycle Every project follows the same lifecycle. The project sections below supply the exact project-specific request and expected products. @@ -225,13 +227,15 @@ The shorthand in this document must be expanded into the actual schema before su |---|---|---|---|---:| | `research-context` | Researcher | `treedx` | none | 2 | | `architecture-contract` | Architect | `treedx` | none | 2 | -| `tests-first` | Tester | `git` | `research-context`, `architecture-contract` | 2 | -| `implement-change` | Engineer | `git` | `tests-first` | 2 | -| `document-change` | Technical Writer | `git` | `tests-first`, `implement-change` | 2 | -| `simulate-release` | Releaser | `git` | `implement-change`, `document-change` | 2 | +| `tests-first` | Tester | `git` | none | 2 | +| `implement-change` | Engineer | `git` | none | 2 | +| `document-change` | Technical Writer | `git` | none | 2 | +| `simulate-release` | Releaser | `git` | none | 2 | Every ready row has `activity: acting`, `review: required`, a non-empty project-specific objective, its owner's genuine estimate and the Reviewer's genuine review estimate, `maximumReviewCycles: 2`, exact `contextRefs`, requested permissions, required capabilities, and project-specific acceptance criteria. Draft intake must support estimating before those values exist; fabricating seed estimates does not satisfy acceptance. +The proposal does not duplicate generic role ordering. The accepted activity profiles are its single authority: question-driven Researcher → generated Reviewer runs in parallel with Architect → Tester → Engineer → Technical Writer → Releaser, and reconciliation inserts a generated Reviewer after every required acting result. `dependsOn` is reserved for proposal-specific domain dependencies that are not already standing workflow rules. + Reconciliation generates one Reviewer node for each row. Generated Reviewer nodes are not written into the proposal. A downstream work item becomes ready only after the predecessor's exact review decision is approved. ### Fixed permissions and assignment workspaces @@ -246,8 +250,8 @@ Reconciliation generates one Reviewer node for each row. Generated Reviewer node ### Fixed product chain -1. Researcher returns an exact TreeDX note or knowledge reference containing source evidence and unresolved questions. -2. Architect returns exact ` Architecture` book/knowledge refs describing the smallest design and ownership boundaries. +1. In response to its assigned question, Researcher returns an exact TreeDX note or knowledge reference containing source evidence and unresolved questions; its review proceeds independently and never blocks the engineering branch. +2. Architect independently returns exact ` Architecture` book/knowledge refs describing the smallest design and ownership boundaries. 3. Tester returns a Git commit containing tests that fail against the frozen base for the intended reason and pass against the expected implementation. Existing unrelated failures are recorded separately. 4. Engineer starts from the approved Tester candidate, makes the implementation pass those tests, and adds no self-authored substitute tests unless the Tester explicitly requested them in its result. 5. Technical Writer starts from the approved implementation/test chain and updates the repository's actual user, operator, API, or contributor documentation. @@ -264,21 +268,23 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent-v2` (the original ID was superseded before this freeze; objectives and topology are unchanged) +- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260925-l` (fresh estimate-free draft copied from the exact TreeDX content at commit `ade82437cbe53c2a573c111758e781f11b23eeeb`; active workday `workday-b5240d15-fbca-4d60-9410-70067b1a5311`). Prior cancelled workdays, including J and K, provide defect evidence only; their estimates and assignment results are not reused. The six SDK work items retain their objectives, with the Tester checking stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Preserve them in normalization and preflight digests. They select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The API incorporates the normalized selection in its intent and preflight digests; SDK does not compute those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| | Researcher | Trace every current SDK workday-selection, decision, graph, assignment, and legacy planning contract; return exact refs and a duplication/deletion note. | | Architect | Extend the SDK Architecture book with the single authority boundary and exact portable shape; identify all retired competing contracts. | -| Tester | Add normalization, duplicate/empty rejection, stable digest, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | +| Tester | Add normalization, duplicate/empty rejection, stable normalized request serialization, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | | Engineer | Implement the minimal strict TypeScript contract and delete superseded unions, aliases, and exported paths. | | Technical Writer | Update SDK API/reference examples to show repeated decision selection and explicitly forbid caller-authored derived state. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs; Architect publishes the SDK Architecture Knowledge page; Tester commits failing-on-base tests; Engineer commits the implementation passing those tests; Technical Writer commits and verifies examples; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. + Required acceptance: empty and duplicate IDs fail; omitted selection retains planning-only intent without a compatibility path; normalized order and digest are deterministic; generated descriptors expose the field once; no legacy execution-plan/capacity-plan input survives. ### 2. API — content-derived acting promotion @@ -589,13 +595,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [x] Refreeze the campaign manifest and exact proposal bytes against the current integrated runtime. The SDK retry retains all six fixed work-item objectives, dependencies, criteria, and permissions; 17 proposals, 136 agent profiles, and 25 real CLI allocation inputs validate. Current manifest digest: `sha256:808592936f8f01d59c2380e0cb200781aa5e44aaed9b84922563f274acd7662d` (Platform #520). -- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). +- [ ] Refreeze the campaign manifest and exact proposal bytes against the current integrated runtime. The corrected 17-project manifest validated at `sha256:559db20ad4bb0b057d4cad2139012b8c50eda1a831436bd51e421cba3599d3e3`, but capture finished after the provisional SDK planning run began; the pre-run freeze boundary is not yet proven (Platform #520). +- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. The corrected campaign validator accepted all 17 draft objects, 136 project agents, and provider offer revision 1; exact TreeDX read-back of SDK v4 commit `34664812cb8303f61eb93d3d31d1c325f3ac3303` confirms six role-scoped criteria and no inherited estimates (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. -- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. The scoped retry preserved the accepted prior proposal, but the new SDK workday failed during planning; the complete reset/teardown and acceptance watch remain unproven. -- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the current campaign. Baseline digest: `sha256:1fb914e10e49756a734dce8699ef6531665e528fa719dd582ba02673c2994b8c` across 35 repositories, 17 registry inventories, 30 Docker Hub repositories, and managed deployment state (Platform #520). +- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. Prior simulation assignments were terminalized with zero unfinished/deferred work and no settlement errors; sandbox and candidate-ref teardown remain unproven. +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the current campaign. The previous baseline `sha256:be62f1c8c1109fa06b8348541956ab77989f68ede93761b7de6e5765b8e740da` predates the SDK v4 correction and Issue #520 update; recapture before judging the active run. ### Stage 1 — SDK alone @@ -704,6 +710,7 @@ A project passes only when all checks below are evidenced from authoritative rec - [ ] The initial graph is deterministic; identical reconciliation is noop. - [ ] Exactly six authored Actor nodes and six generated Reviewer nodes represent the proposal work. - [ ] Every edge has source provenance and downstream readiness waits for approved review, not merely Actor completion. +- [ ] Researcher → Reviewer has no edge into the engineering branch; Architect → Tester → Engineer → Technical Writer → Releaser uses only immediate reviewed predecessors. - [ ] Mid-workday content changes affect only the connected component. ### Profiles and collaboration @@ -771,8 +778,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 8 | Intermediate SDK gate passed; full Stage 0 freeze pending | Platform #520; local SDK freeze `sha256:d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419` | SDK inputs and read-only CLI request validate; refresh the all-project campaign manifest and external-state inventory before creating a golden workday. | -| SDK | — | 0 | canonical golden not started | Platform #520; proposal `golden-sdk-decision-governed-workday-intent-v2`; SDK library `65106c908bca127ea45d11b3f6b54905878d191c` | Intermediate fixture and role contracts pass, but real planning, estimates, review, acting, and settlement remain unproven. | +| Preflight | — | 10 | prior Stage 0 freeze invalidated by guest repair | Platform #520; prior campaign `sha256:64941f7bc58bf83328c5d42a7192decb89d8ecbf7acd4e19ffb9b6b1971e4b7f`; external baseline `sha256:be62f1c8c1109fa06b8348541956ab77989f68ede93761b7de6e5765b8e740da` | Seventeen proposals, 136 profiles, 25 CLI allocation inputs, and Luna/low supply were validated. Refreeze the rebuilt guest and prove real Codex schema acceptance before the next golden run. | +| SDK | `workday-38e96044-e9d7-4448-9985-2897b14db703` | 15 | no golden pass; O cancelled | Platform #520; estimate-free proposal O from exact TreeDX source `ade82437cbe53c2a573c111758e781f11b23eeeb` | O completed eight chat replies, seven estimates, and two eight-role planning cycles without failed assignments. Proposal review became graph-ready but could not fit the remaining 20% planning entitlement after earlier runs consumed most of today's 28,800-second implementation-model cap. Refreeze a fresh attempt only when read-back proves sufficient daily supply. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7a794e3d..60607a64 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -112,7 +112,7 @@ activityProfiles: planning: handler: writer dependsOn: - agents: [architect] + agents: [tester] permissions: content: read: [book, knowledge, objective, proposal, decision, note, question] @@ -124,7 +124,7 @@ activityProfiles: estimating: handler: estimate dependsOn: - agents: [architect] + agents: [tester] permissions: content: read: [book, knowledge, objective, proposal, decision, note, question] @@ -216,17 +216,17 @@ Initial first-party defaults: | Agent | Default handlers by activity | Standing dependency | |---|---|---| | Architect | planning/chat: `writer`; estimating: `estimate`; acting: `writer` | none | -| Engineer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Tester | +| Engineer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Tester | | Tester | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Architect | -| Releaser | planning/chat: `writer`; estimating: `estimate`; acting: `releaser` | planning and estimating require Architect; acting requires Engineer, Technical Writer, and approved required reviews | +| Releaser | planning/chat: `writer`; estimating: `estimate`; acting: `releaser` | planning, estimating, and acting require Technical Writer | | Reporter | planning/chat: `writer`; reporting: `reporter` | reporting requires `workday-closing` | -| Researcher | planning/chat/acting: `writer`; estimating: `estimate` | none | -| Reviewer | planning/reviewing/chat: `writer`; estimating: `estimate` | planning and estimating require Architect; reviewing depends on the exact work being reviewed | -| Technical Writer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Engineer and Tester | +| Researcher | planning/chat/acting: `writer`; estimating: `estimate` | none; admitted research answers a question in parallel with engineering | +| Reviewer | planning/reviewing/chat: `writer`; estimating: `estimate` | no standing agent dependency; reviewing depends on the exact work being reviewed | +| Technical Writer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Engineer | Standing dependencies apply to scheduled planning, estimating, and acting work. They do not apply automatically to chat, because an addressed message must not wait for an unrelated workflow node. Reviewing is subject-bound: reconciliation creates an edge from each exact reviewed node to its Reviewer node rather than placing every possible review target in the profile. -The SDK default is test-first: Architect → Tester → Engineer. The Tester returns an exact test commit; the Engineer receives that commit as its base and normally receives no grant to modify test paths. Incorrect tests return to the Tester as revision work instead of being silently rewritten by the Engineer. +The first-party default is two parallel branches: question-driven Researcher → Reviewer, and Architect → Tester → Engineer → Technical Writer → Releaser, with each acting result independently reviewed. The Tester returns an exact test commit; the Engineer receives that approved commit as its base and normally receives no grant to modify test paths. Incorrect tests return to the Tester as revision work instead of being silently rewritten by the Engineer. Use one Reviewer class. A required acting work item automatically gets a paired reviewing node; no profile attaches itself to another agent and no user authors the generated node. The pair shares one work-item objective. The actor produces an immutable candidate, the Reviewer evaluates it, and rejection advances both stable nodes to another bounded revision with the exact findings. The work item becomes complete only after approval. @@ -447,7 +447,7 @@ Acceptance: - [x] Implement `WriterHandler`, `ActorHandler`, `EstimateHandler`, `ReleaserHandler`, and `ReporterHandler` against the shared interface. - [x] Migrate Architect, Engineer, Tester, Releaser, Reporter, Researcher, Reviewer, and Technical Writer to the default matrix above with complete prompts. -- [ ] Prove Architect → Tester → Engineer ordering, activity-specific planning/estimating dependencies, and the Releaser/Technical Writer dependencies above. +- [ ] Prove parallel Researcher → Reviewer and Architect → Tester → Engineer → Technical Writer → Releaser ordering for planning, estimating, and acting, with generated review pairs and no cross-branch edge. - [ ] Make the Architect maintain a conventional ` Architecture` book of validated knowledge pages. - [x] Route Reviewer findings through notes/questions and formal dispositions through decisions, all bound to exact candidate references. - [x] Remove Reviewer acting behavior; route proposal review and every required acting-work review through the same Reviewer `reviewing` profile. @@ -487,7 +487,7 @@ Acceptance: - [ ] Later planning cycles load prior published contributions through TreeDX; earlier second-round evidence does not prove repeating cycles. - [ ] Mid-workday content changes add eligible work without restarting the workday. - [ ] Multi-project, multi-class, multi-team, retries, failures, idle share, and stable ties pass deterministic tests. -- [x] Reporter runs during closing and the workday ends only after report completion and settlement. +- [ ] Reporter runs during closing and the workday ends only after report completion and settlement. Focused lifecycle tests pass; complete report evidence and stored exact reference still require live acceptance (see `agent-assignments.md`). ### Phase 5 — Integration, clean cutover, and managed acceptance @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- One AgentKernel/handler path, capability accounting, workday admission, project-owned handler selection, exact Architect Book output, and fail-closed runtime boundaries have focused tests. SDK (340), API (1,100), and Agent (186) tests pass. This does not prove the full lifecycle (Platform #520). +- AgentKernel, capability accounting, admission, handler selection, workspace enforcement, and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; six diagnostic Actor/Reviewer pairs passed with clock checks and teardown. Full lifecycle acceptance remains in `agent-assignments.md` (Platform #520). ### Current active blocker -- No localized AgentKernel implementation blocker is active. Exhaustive structural schema verification and focused semantic tests pass; governed Architecture-book read-back belongs to the golden acceptance preflight. +- The coded component scenes and current Agent binding audit pass. Historical live-outcome guarantees remain unproven and are explicitly rejected by the component runner; no current focused-estimating blocker is known. Exact evidence and remaining live-contract migration are in Platform #520. ### Next acceptance milestone -- Verify provider execution, capacity accounting, and exact workspace enforcement in the unchanged SDK golden lifecycle. +- Complete the active unchanged SDK golden through decision-bound execution; verify measured usage, settlement and teardown using live evidence, not component receipts. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 31470a7c..84475992 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -39,7 +39,7 @@ Checkboxes report implementation status only: ## Golden Development Acceptance -[`docs/agent-acceptance.md`](./agent-acceptance.md) is the complete and exclusive testing guide. This plan records only implementation TODOs and fully proven completion. Earlier synthetic or reduced workdays are diagnostics and do not satisfy acceptance. The current frontier is Stage 0 followed by the unchanged SDK golden proposal; do not broaden scenarios or cut an RC before that path passes. +[`docs/agent-acceptance.md`](./agent-acceptance.md) is the complete and exclusive testing guide. This plan records only implementation TODOs and fully proven completion. Earlier synthetic or reduced workdays are diagnostics and do not satisfy acceptance. The current frontier is the unchanged SDK proposal's generated Actor/Reviewer path; see Observations and Blockers. Do not broaden scenarios or cut an RC before the full path passes. ## Decisions @@ -169,25 +169,25 @@ Proposal work items may add ordering needed only for that proposal: Profile dependencies are invariant minimums. Work-specific dependencies may add edges but cannot remove profile requirements. -The initial SDK workflow resolves as follows: +The initial first-party workflow has two parallel branches. Research exists to answer a question and is reviewed independently; it is never an implicit predecessor of architecture or execution work: ```text -Architect planning → Reviewer proposal review → decision +question → Researcher acting → Reviewer approval + Architect acting → Reviewer approval ↓ Tester acting ───→ Reviewer approval ↓ Engineer acting ─→ Reviewer approval - │ │ - └──────┬─────────┘ - ↓ + ↓ Technical Writer acting → Reviewer approval - ↓ - Releaser + ↓ +Releaser acting ─→ Reviewer approval + workday-closing → Reporter ``` -Engineer planning and estimating depend on Architect, while Engineer acting depends on Tester. Tester planning, estimating, and acting depend on Architect. Releaser planning and estimating depend on Architect; acting depends on Engineer, Technical Writer, and all applicable required Reviewer nodes. Technical Writer planning and estimating depend on Architect; acting depends on Engineer and Tester. +For planning, estimating, and acting, the engineering branch uses immediate predecessors only: Tester depends on Architect, Engineer on Tester, Technical Writer on Engineer, and Releaser on Technical Writer. Researcher has no standing dependency and runs only for an admitted research question or research work item. Reviewer has no standing agent dependency because reconciliation generates each exact Actor → Reviewer edge. Chat remains independent. Use one Reviewer class and its `reviewing` activity. Every acting work item with `review: required` expands into two stable internal nodes: the declared actor node and a Reviewer node. `review: required` is the default; `review: none` must be explicit and is reserved initially for deterministic release, integration, or closeout work whose accepted predecessors are already reviewed. Do not create Reviewer subclasses, enable reviewing on producer agents, or require users to author the generated review node. @@ -338,7 +338,7 @@ Acceptance: Acceptance: -- [ ] Architect → Tester → Engineer and Engineer/Tester → Technical Writer materialize without profile-authored graph IDs. +- [ ] Researcher → Reviewer remains parallel to Architect → Tester → Engineer → Technical Writer → Releaser, and every required actor is independently reviewed, without profile-authored graph IDs. - [ ] Proposal review gates decision and every required Actor → Reviewer pair gates downstream work-item readiness. - [ ] Releaser waits for approved Engineer and Technical Writer work-item pairs and every other applicable required review. - [x] `workday-closing` → Reporter materializes as an ordinary condition dependency. @@ -379,7 +379,7 @@ Acceptance: Acceptance: - [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. The earlier reduced proposal did not include the six fixed SDK work items required by the acceptance specification. -- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. This remains to be replayed inside the unchanged SDK golden campaign. +- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. This remains to be replayed inside the approved SDK v4 golden campaign. - [ ] Two projects progress in one team graph without copying project graphs or leaking context. ### Phase 5 — Clean cutover and managed CLI acceptance @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact TreeDX `depends_on` intake, endpoint-grant denial, and PostgreSQL admission/settlement have focused tests; TreeDX PR #65 merged to staging. The SDK golden has not passed (Platform #520). +- Proposal, estimate, one-graph projection, exact TreeDX dependency intake, admission/settlement, and decision-scoped predecessor custody have focused tests. SDK planning produced genuine estimates and an accepted exact decision; diagnostic acting paths reached Release, including bounded revision/re-review. No complete golden workday has passed (Platform #520). ### Current active blocker -- No localized living-graph implementation blocker is active: focused tests cover complete-draft review, exact question/authority/external/lifecycle conditions, deterministic dependency projection, transactional PostgreSQL admission, review-cycle recovery, and exactly-once settlement. Live lifecycle proof remains an acceptance task. +- No focused component execution blocker is known; see `agent-architecture.md`. Native Reporter exact publication/reference persistence passed focused live acceptance, but full failed-attempt coverage and the golden lifecycle remain unproven (Platform #520). ### Next acceptance milestone -- Run the unchanged SDK golden from discussion and genuine estimates through decision, Actor → Reviewer revision, approval, settlement, and cleanup. +- After the execution blocker is repaired, refreeze unchanged SDK objectives and complete genuine estimates, exact decision, six generated Actor/Reviewer pairs, revision/re-review, Reporter, settlement and teardown; prior diagnostics are not golden evidence. ## Completion diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index df929514..7fe263fa 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -21,7 +21,7 @@ ### 2. Assignment and guest contract - [x] An Architect assignment with an exact Architecture Book receives it as a read grant and gets a valid `knowledge//.md` write target. Admission rejects a missing Book. API assignment-builder tests: 18 passing. -- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. Agent guest tests: 39 passing; Agent typecheck passes. +- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. The repaired schema passed a live Luna/low Kata assignment: Architect produced the granted SDK Architecture Knowledge page with the exact Book reference; focused Agent tests and type-check also pass. This is a guest-contract check, not golden acceptance. - [x] Exercise the proposal → generated graph → immutable assignment → guest-context transformation in one local integration fixture, asserting exact published Book bytes, write target, timing budget, and no external mutation. The fixture produced 14 nodes, a 180-second Architect allocation, one exact Architecture Book context item, and a constrained Knowledge output at `knowledge/sdk-architecture/knowledge-bb1ba00e45b117114756c0d6.md`. - [x] Confirm Researcher, Architect, and generated Reviewer output/grant contracts against the frozen proposal before a live workday. The cross-package fixture uses the actual published SDK role profiles, checks requested permissions against their activity ceilings, builds each role's grant, and verifies the Architect Knowledge output schema. This is local contract evidence, not an agent-execution result. @@ -37,6 +37,13 @@ - [x] Record a passing intermediate preflight receipt in Platform Issue #520 with focused test results, runtime digests, exact refs, and an unchanged external-state baseline. The local freeze SHA-256 is `d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419`. - [x] Hand the frozen SDK proposal and a schema-valid, read-only `trsd workdays plan --plan` request back to Stage 0 of `agent-acceptance.md`. Starting and judging the SDK → API → joint workdays belongs exclusively to that acceptance plan, after its full campaign freeze; no golden checkbox is marked from this handoff. +### 5. Mandatory executable regression gate + +- [x] Restore a package-owned scene/guarantee runner that fails closed on missing implementations, skipped/empty evidence, absent prerequisites, and uncovered required cases; retain exact local receipts in Platform #520. +- [x] Execute coded component scenes for SDK, API, Agent, Deployment isolation, and CLI operator boundaries; these are preflight evidence only, not a golden workday pass. +- [ ] Reconcile every remaining stale catalog binding against current ownership and semantics; do not map a broad guarantee to an unrelated passing test or revive retired runtime paths. +- [ ] Prove the unchanged full SDK golden through the real graph, then proceed to API/joint acceptance under `agent-acceptance.md`. + ## Current frontier -Intermediate preflight passed. The SDK workday request with eight canonical class IDs, 20% planning, equal 12.5% class targets, simulation mode, and the one canonical proposal validated through `trsd workdays plan --plan` without creating a workday. Return to Stage 0 of `agent-acceptance.md`: refresh its full all-project campaign manifest and external-state inventory, then create one SDK preflight/workday. A passing fixture is not a passing golden workday; no golden workday has passed. +The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 2e00dab3..dcc2a772 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -37,8 +37,10 @@ $comment: >- must additionally enforce ordered estimate bounds; unique work-item IDs; local, acyclic dependencies; requested permissions within profile and policy ceilings; exact current authority refs; deterministic node/edge identity; - one active assignment per node revision; repeated dependency-ordered planning cycles; bounded - review cycles; immutable assignment inputs; and exactly-once settlement. + one active assignment per node revision; repeated dependency-ordered planning cycles; the + parallel question-driven Researcher -> Reviewer and Architect -> Tester -> Engineer -> + Technical Writer -> Releaser branches; bounded review cycles; immutable assignment inputs; + and exactly-once settlement. # A document validated at the root must be exactly one stored record type. oneOf: From fc42fae5d0d18905d6538620cc0bfc9217daf1ac Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 05:43:51 -0400 Subject: [PATCH 397/501] docs(agent): align acceptance gates and parallel role authority (#550) Refs #520. Keep component evidence distinct from unproven full golden acceptance; use canonical class allocation keys and current dependency ordering. --- docs/agent-acceptance.md | 41 +++++++++++++++++++-------------- docs/agent-architecture.md | 26 ++++++++++----------- docs/agent-assignments.md | 28 +++++++++++----------- docs/agent-intermediate-plan.md | 11 +++++++-- docs/agent.schema.yml | 6 +++-- 5 files changed, 64 insertions(+), 48 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index eb115f86..7cd9f746 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -70,7 +70,7 @@ The campaign manifest is test configuration, not a new control-plane resource. O ### High-level allocation inputs -Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. The campaign manifest must contain one fully expanded, schema-validated workday input for **every** individual project, the SDK/API joint run, the portfolio run, and each controlled failure rerun. The table below is the authoring rule; submit canonical seeded project IDs and agent-class IDs, and retain the exact submitted input and resolved policy snapshot with each run. A table entry is not permission to omit fields from a submitted input. +Freeze the resolved workday policy and actual provider offer/configuration alongside the campaign. The campaign manifest must contain one fully expanded, schema-validated workday input for **every** individual project, the SDK/API joint run, the portfolio run, and each controlled failure rerun. The table below is the authoring rule; submit canonical seeded project IDs and canonical `AgentDefinition.agentClass` values, and retain the exact submitted input and resolved policy snapshot with each run. Project-agent-class database row IDs are inventory references, not allocator class keys. A table entry is not permission to omit fields from a submitted input. | Run | Selected projects and `projectPercentages` | `agentClassPercentages` | |---|---|---| @@ -119,7 +119,7 @@ allocation: Resolve project and class keys to their canonical seeded identities before submission. Project/class percentages are redistributable opportunity targets, not per-assignment durations. Each assignment read-back must identify its workday-policy snapshot, genuine estimate and rationale, allocator-selected active duration and deadline, limiting constraint, reservation, measured usage, and settlement. Provider-owned capability caps, shared execution-provider/model caps, assignment bounds, remaining usage and reservations must be read back and frozen; a simulation consumes the same real supply as other workdays. Duration and concurrency remain explicit workday inputs. Never insert reservations directly or supply hand-authored assignment allocations. -For this local campaign, configure `codex-research` with Sol/Medium and a 7,200-active-second daily cap, and `codex-implementation` with Terra/Medium and a 28,800-active-second daily cap. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. +For this local campaign, configure both `codex-research` and `codex-implementation` with Luna/Low to conserve quota, retaining separate 7,200- and 28,800-active-second daily caps respectively. These are installation inputs, not universal release defaults. Both reuse the Codex harness; capability identity remains independent of the execution-provider ID so other providers can supply the same capability. Freeze actual model and capability limits from provider read-back before running the campaign. For the all-project portfolio run only, calculate required planning, acting, bounded review, and Reporter supply from the individually accepted genuine estimates. If the normal caps cannot support that work inside the eight-hour window at actual safe concurrency, raise test capability/model caps through versioned provider configuration, preflight again, and freeze the exact temporary offer. Never lower a viable assignment minimum or exceed host/model limits to force admission. Restore and verify the ordinary caps after settlement. If the host cannot supply a viable plan, do not start the portfolio workday; report the exact shortfall. @@ -154,6 +154,8 @@ A retry must begin from all of the following original inputs: Failed historical records remain auditable, but they cannot satisfy dependencies in the retry. The new workday receives a new ID. Deterministic source projection must reproduce the same initial graph digest. +Use the existing scoped `trsd workdays stop ` path for an active failed simulation; do not reset the team, provider, or host. Before a retry, read back that run as terminal with zero unfinished/deferred assignments and settlement errors, no team lease belonging to it, and only stale/cancelled graph nodes. Verify its assignment workspaces and sandboxes are closed, and catalog or explicitly discard only that run's local candidate refs under their normal custody rules. If any of these checks cannot be proven, the reset gate remains open and the retry is not accepted. A new workday ID isolates attempts; it does not excuse leaked resources. + ## The canonical proposal lifecycle Every project follows the same lifecycle. The project sections below supply the exact project-specific request and expected products. @@ -225,13 +227,15 @@ The shorthand in this document must be expanded into the actual schema before su |---|---|---|---|---:| | `research-context` | Researcher | `treedx` | none | 2 | | `architecture-contract` | Architect | `treedx` | none | 2 | -| `tests-first` | Tester | `git` | `research-context`, `architecture-contract` | 2 | -| `implement-change` | Engineer | `git` | `tests-first` | 2 | -| `document-change` | Technical Writer | `git` | `tests-first`, `implement-change` | 2 | -| `simulate-release` | Releaser | `git` | `implement-change`, `document-change` | 2 | +| `tests-first` | Tester | `git` | none | 2 | +| `implement-change` | Engineer | `git` | none | 2 | +| `document-change` | Technical Writer | `git` | none | 2 | +| `simulate-release` | Releaser | `git` | none | 2 | Every ready row has `activity: acting`, `review: required`, a non-empty project-specific objective, its owner's genuine estimate and the Reviewer's genuine review estimate, `maximumReviewCycles: 2`, exact `contextRefs`, requested permissions, required capabilities, and project-specific acceptance criteria. Draft intake must support estimating before those values exist; fabricating seed estimates does not satisfy acceptance. +The proposal does not duplicate generic role ordering. The accepted activity profiles are its single authority: question-driven Researcher → generated Reviewer runs in parallel with Architect → Tester → Engineer → Technical Writer → Releaser, and reconciliation inserts a generated Reviewer after every required acting result. `dependsOn` is reserved for proposal-specific domain dependencies that are not already standing workflow rules. + Reconciliation generates one Reviewer node for each row. Generated Reviewer nodes are not written into the proposal. A downstream work item becomes ready only after the predecessor's exact review decision is approved. ### Fixed permissions and assignment workspaces @@ -246,8 +250,8 @@ Reconciliation generates one Reviewer node for each row. Generated Reviewer node ### Fixed product chain -1. Researcher returns an exact TreeDX note or knowledge reference containing source evidence and unresolved questions. -2. Architect returns exact ` Architecture` book/knowledge refs describing the smallest design and ownership boundaries. +1. In response to its assigned question, Researcher returns an exact TreeDX note or knowledge reference containing source evidence and unresolved questions; its review proceeds independently and never blocks the engineering branch. +2. Architect independently returns exact ` Architecture` book/knowledge refs describing the smallest design and ownership boundaries. 3. Tester returns a Git commit containing tests that fail against the frozen base for the intended reason and pass against the expected implementation. Existing unrelated failures are recorded separately. 4. Engineer starts from the approved Tester candidate, makes the implementation pass those tests, and adds no self-authored substitute tests unless the Tester explicitly requested them in its result. 5. Technical Writer starts from the approved implementation/test chain and updates the repository's actual user, operator, API, or contributor documentation. @@ -264,21 +268,23 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent-v2` (the original ID was superseded before this freeze; objectives and topology are unchanged) +- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260925-l` (fresh estimate-free draft copied from the exact TreeDX content at commit `ade82437cbe53c2a573c111758e781f11b23eeeb`; active workday `workday-b5240d15-fbca-4d60-9410-70067b1a5311`). Prior cancelled workdays, including J and K, provide defect evidence only; their estimates and assignment results are not reused. The six SDK work items retain their objectives, with the Tester checking stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Preserve them in normalization and preflight digests. They select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The API incorporates the normalized selection in its intent and preflight digests; SDK does not compute those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| | Researcher | Trace every current SDK workday-selection, decision, graph, assignment, and legacy planning contract; return exact refs and a duplication/deletion note. | | Architect | Extend the SDK Architecture book with the single authority boundary and exact portable shape; identify all retired competing contracts. | -| Tester | Add normalization, duplicate/empty rejection, stable digest, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | +| Tester | Add normalization, duplicate/empty rejection, stable normalized request serialization, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | | Engineer | Implement the minimal strict TypeScript contract and delete superseded unions, aliases, and exported paths. | | Technical Writer | Update SDK API/reference examples to show repeated decision selection and explicitly forbid caller-authored derived state. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs; Architect publishes the SDK Architecture Knowledge page; Tester commits failing-on-base tests; Engineer commits the implementation passing those tests; Technical Writer commits and verifies examples; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. + Required acceptance: empty and duplicate IDs fail; omitted selection retains planning-only intent without a compatibility path; normalized order and digest are deterministic; generated descriptors expose the field once; no legacy execution-plan/capacity-plan input survives. ### 2. API — content-derived acting promotion @@ -589,13 +595,13 @@ Required acceptance: all 17 engineering projects and their libraries are represe ### Stage 0 — preflight -- [x] Refreeze the campaign manifest and exact proposal bytes against the current integrated runtime. The SDK retry retains all six fixed work-item objectives, dependencies, criteria, and permissions; 17 proposals, 136 agent profiles, and 25 real CLI allocation inputs validate. Current manifest digest: `sha256:808592936f8f01d59c2380e0cb200781aa5e44aaed9b84922563f274acd7662d` (Platform #520). -- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. Authorized correction limits each role to its required product and retains final project gates at release; all 34 draft/ready objects validate. Refrozen manifest digest: `sha256:5d7dfa931e1018fcf14171b20e42e3b429be5733ab4be5c2857a84b66999fa83` (Platform #520). +- [ ] Refreeze the campaign manifest and exact proposal bytes against the current integrated runtime. The corrected 17-project manifest validated at `sha256:559db20ad4bb0b057d4cad2139012b8c50eda1a831436bd51e421cba3599d3e3`, but capture finished after the provisional SDK planning run began; the pre-run freeze boundary is not yet proven (Platform #520). +- [x] Validate all 17 proposal objects against `docs/agent.schema.yml` and semantic rules. The corrected campaign validator accepted all 17 draft objects, 136 project agents, and provider offer revision 1; exact TreeDX read-back of SDK v4 commit `34664812cb8303f61eb93d3d31d1c325f3ac3303` confirms six role-scoped criteria and no inherited estimates (Platform #520). - [x] Confirm all eight agent definitions exist for all 17 projects and every required activity resolves one handler from the pinned runtime build. - [x] Confirm the simulation provider offers every required capability/tool group and is allowed to serve all 17 projects, including Identity. - [x] Confirm upstream write credentials and all external mutation tools are absent. -- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. The scoped retry preserved the accepted prior proposal, but the new SDK workday failed during planning; the complete reset/teardown and acceptance watch remain unproven. -- [x] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the current campaign. Baseline digest: `sha256:1fb914e10e49756a734dce8699ef6531665e528fa719dd582ba02673c2994b8c` across 35 repositories, 17 registry inventories, 30 Docker Hub repositories, and managed deployment state (Platform #520). +- [ ] Confirm local simulation Git and TreeDX custody, retention, reset, watch, and teardown work. Prior simulation assignments were terminalized with zero unfinished/deferred work and no settlement errors; sandbox and candidate-ref teardown remain unproven. +- [ ] Capture pre-run upstream branch/tag/release/issue/registry/deployment state for the current campaign. The previous baseline `sha256:be62f1c8c1109fa06b8348541956ab77989f68ede93761b7de6e5765b8e740da` predates the SDK v4 correction and Issue #520 update; recapture before judging the active run. ### Stage 1 — SDK alone @@ -704,6 +710,7 @@ A project passes only when all checks below are evidenced from authoritative rec - [ ] The initial graph is deterministic; identical reconciliation is noop. - [ ] Exactly six authored Actor nodes and six generated Reviewer nodes represent the proposal work. - [ ] Every edge has source provenance and downstream readiness waits for approved review, not merely Actor completion. +- [ ] Researcher → Reviewer has no edge into the engineering branch; Architect → Tester → Engineer → Technical Writer → Releaser uses only immediate reviewed predecessors. - [ ] Mid-workday content changes affect only the connected component. ### Profiles and collaboration @@ -771,8 +778,8 @@ The agent running this campaign must update only this section's checkboxes and t | Stage/project | Latest workday | Attempts | Result | Evidence/report ref | Observation or blocker | |---|---|---:|---|---|---| -| Preflight | — | 8 | Intermediate SDK gate passed; full Stage 0 freeze pending | Platform #520; local SDK freeze `sha256:d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419` | SDK inputs and read-only CLI request validate; refresh the all-project campaign manifest and external-state inventory before creating a golden workday. | -| SDK | — | 0 | canonical golden not started | Platform #520; proposal `golden-sdk-decision-governed-workday-intent-v2`; SDK library `65106c908bca127ea45d11b3f6b54905878d191c` | Intermediate fixture and role contracts pass, but real planning, estimates, review, acting, and settlement remain unproven. | +| Preflight | — | 10 | prior Stage 0 freeze invalidated by guest repair | Platform #520; prior campaign `sha256:64941f7bc58bf83328c5d42a7192decb89d8ecbf7acd4e19ffb9b6b1971e4b7f`; external baseline `sha256:be62f1c8c1109fa06b8348541956ab77989f68ede93761b7de6e5765b8e740da` | Seventeen proposals, 136 profiles, 25 CLI allocation inputs, and Luna/low supply were validated. Refreeze the rebuilt guest and prove real Codex schema acceptance before the next golden run. | +| SDK | `workday-38e96044-e9d7-4448-9985-2897b14db703` | 15 | no golden pass; O cancelled | Platform #520; estimate-free proposal O from exact TreeDX source `ade82437cbe53c2a573c111758e781f11b23eeeb` | O completed eight chat replies, seven estimates, and two eight-role planning cycles without failed assignments. Proposal review became graph-ready but could not fit the remaining 20% planning entitlement after earlier runs consumed most of today's 28,800-second implementation-model cap. Refreeze a fresh attempt only when read-back proves sufficient daily supply. | | API | — | 0 | not started | — | — | | SDK + API | — | 0 | not started | — | — | | Agent | — | 0 | not started | — | — | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7a794e3d..60607a64 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -112,7 +112,7 @@ activityProfiles: planning: handler: writer dependsOn: - agents: [architect] + agents: [tester] permissions: content: read: [book, knowledge, objective, proposal, decision, note, question] @@ -124,7 +124,7 @@ activityProfiles: estimating: handler: estimate dependsOn: - agents: [architect] + agents: [tester] permissions: content: read: [book, knowledge, objective, proposal, decision, note, question] @@ -216,17 +216,17 @@ Initial first-party defaults: | Agent | Default handlers by activity | Standing dependency | |---|---|---| | Architect | planning/chat: `writer`; estimating: `estimate`; acting: `writer` | none | -| Engineer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Tester | +| Engineer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Tester | | Tester | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Architect | -| Releaser | planning/chat: `writer`; estimating: `estimate`; acting: `releaser` | planning and estimating require Architect; acting requires Engineer, Technical Writer, and approved required reviews | +| Releaser | planning/chat: `writer`; estimating: `estimate`; acting: `releaser` | planning, estimating, and acting require Technical Writer | | Reporter | planning/chat: `writer`; reporting: `reporter` | reporting requires `workday-closing` | -| Researcher | planning/chat/acting: `writer`; estimating: `estimate` | none | -| Reviewer | planning/reviewing/chat: `writer`; estimating: `estimate` | planning and estimating require Architect; reviewing depends on the exact work being reviewed | -| Technical Writer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning and estimating require Architect; acting requires Engineer and Tester | +| Researcher | planning/chat/acting: `writer`; estimating: `estimate` | none; admitted research answers a question in parallel with engineering | +| Reviewer | planning/reviewing/chat: `writer`; estimating: `estimate` | no standing agent dependency; reviewing depends on the exact work being reviewed | +| Technical Writer | planning/chat: `writer`; estimating: `estimate`; acting: `actor` | planning, estimating, and acting require Engineer | Standing dependencies apply to scheduled planning, estimating, and acting work. They do not apply automatically to chat, because an addressed message must not wait for an unrelated workflow node. Reviewing is subject-bound: reconciliation creates an edge from each exact reviewed node to its Reviewer node rather than placing every possible review target in the profile. -The SDK default is test-first: Architect → Tester → Engineer. The Tester returns an exact test commit; the Engineer receives that commit as its base and normally receives no grant to modify test paths. Incorrect tests return to the Tester as revision work instead of being silently rewritten by the Engineer. +The first-party default is two parallel branches: question-driven Researcher → Reviewer, and Architect → Tester → Engineer → Technical Writer → Releaser, with each acting result independently reviewed. The Tester returns an exact test commit; the Engineer receives that approved commit as its base and normally receives no grant to modify test paths. Incorrect tests return to the Tester as revision work instead of being silently rewritten by the Engineer. Use one Reviewer class. A required acting work item automatically gets a paired reviewing node; no profile attaches itself to another agent and no user authors the generated node. The pair shares one work-item objective. The actor produces an immutable candidate, the Reviewer evaluates it, and rejection advances both stable nodes to another bounded revision with the exact findings. The work item becomes complete only after approval. @@ -447,7 +447,7 @@ Acceptance: - [x] Implement `WriterHandler`, `ActorHandler`, `EstimateHandler`, `ReleaserHandler`, and `ReporterHandler` against the shared interface. - [x] Migrate Architect, Engineer, Tester, Releaser, Reporter, Researcher, Reviewer, and Technical Writer to the default matrix above with complete prompts. -- [ ] Prove Architect → Tester → Engineer ordering, activity-specific planning/estimating dependencies, and the Releaser/Technical Writer dependencies above. +- [ ] Prove parallel Researcher → Reviewer and Architect → Tester → Engineer → Technical Writer → Releaser ordering for planning, estimating, and acting, with generated review pairs and no cross-branch edge. - [ ] Make the Architect maintain a conventional ` Architecture` book of validated knowledge pages. - [x] Route Reviewer findings through notes/questions and formal dispositions through decisions, all bound to exact candidate references. - [x] Remove Reviewer acting behavior; route proposal review and every required acting-work review through the same Reviewer `reviewing` profile. @@ -487,7 +487,7 @@ Acceptance: - [ ] Later planning cycles load prior published contributions through TreeDX; earlier second-round evidence does not prove repeating cycles. - [ ] Mid-workday content changes add eligible work without restarting the workday. - [ ] Multi-project, multi-class, multi-team, retries, failures, idle share, and stable ties pass deterministic tests. -- [x] Reporter runs during closing and the workday ends only after report completion and settlement. +- [ ] Reporter runs during closing and the workday ends only after report completion and settlement. Focused lifecycle tests pass; complete report evidence and stored exact reference still require live acceptance (see `agent-assignments.md`). ### Phase 5 — Integration, clean cutover, and managed acceptance @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- One AgentKernel/handler path, capability accounting, workday admission, project-owned handler selection, exact Architect Book output, and fail-closed runtime boundaries have focused tests. SDK (340), API (1,100), and Agent (186) tests pass. This does not prove the full lifecycle (Platform #520). +- AgentKernel, capability accounting, admission, handler selection, workspace enforcement, and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; six diagnostic Actor/Reviewer pairs passed with clock checks and teardown. Full lifecycle acceptance remains in `agent-assignments.md` (Platform #520). ### Current active blocker -- No localized AgentKernel implementation blocker is active. Exhaustive structural schema verification and focused semantic tests pass; governed Architecture-book read-back belongs to the golden acceptance preflight. +- The coded component scenes and current Agent binding audit pass. Historical live-outcome guarantees remain unproven and are explicitly rejected by the component runner; no current focused-estimating blocker is known. Exact evidence and remaining live-contract migration are in Platform #520. ### Next acceptance milestone -- Verify provider execution, capacity accounting, and exact workspace enforcement in the unchanged SDK golden lifecycle. +- Complete the active unchanged SDK golden through decision-bound execution; verify measured usage, settlement and teardown using live evidence, not component receipts. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 31470a7c..84475992 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -39,7 +39,7 @@ Checkboxes report implementation status only: ## Golden Development Acceptance -[`docs/agent-acceptance.md`](./agent-acceptance.md) is the complete and exclusive testing guide. This plan records only implementation TODOs and fully proven completion. Earlier synthetic or reduced workdays are diagnostics and do not satisfy acceptance. The current frontier is Stage 0 followed by the unchanged SDK golden proposal; do not broaden scenarios or cut an RC before that path passes. +[`docs/agent-acceptance.md`](./agent-acceptance.md) is the complete and exclusive testing guide. This plan records only implementation TODOs and fully proven completion. Earlier synthetic or reduced workdays are diagnostics and do not satisfy acceptance. The current frontier is the unchanged SDK proposal's generated Actor/Reviewer path; see Observations and Blockers. Do not broaden scenarios or cut an RC before the full path passes. ## Decisions @@ -169,25 +169,25 @@ Proposal work items may add ordering needed only for that proposal: Profile dependencies are invariant minimums. Work-specific dependencies may add edges but cannot remove profile requirements. -The initial SDK workflow resolves as follows: +The initial first-party workflow has two parallel branches. Research exists to answer a question and is reviewed independently; it is never an implicit predecessor of architecture or execution work: ```text -Architect planning → Reviewer proposal review → decision +question → Researcher acting → Reviewer approval + Architect acting → Reviewer approval ↓ Tester acting ───→ Reviewer approval ↓ Engineer acting ─→ Reviewer approval - │ │ - └──────┬─────────┘ - ↓ + ↓ Technical Writer acting → Reviewer approval - ↓ - Releaser + ↓ +Releaser acting ─→ Reviewer approval + workday-closing → Reporter ``` -Engineer planning and estimating depend on Architect, while Engineer acting depends on Tester. Tester planning, estimating, and acting depend on Architect. Releaser planning and estimating depend on Architect; acting depends on Engineer, Technical Writer, and all applicable required Reviewer nodes. Technical Writer planning and estimating depend on Architect; acting depends on Engineer and Tester. +For planning, estimating, and acting, the engineering branch uses immediate predecessors only: Tester depends on Architect, Engineer on Tester, Technical Writer on Engineer, and Releaser on Technical Writer. Researcher has no standing dependency and runs only for an admitted research question or research work item. Reviewer has no standing agent dependency because reconciliation generates each exact Actor → Reviewer edge. Chat remains independent. Use one Reviewer class and its `reviewing` activity. Every acting work item with `review: required` expands into two stable internal nodes: the declared actor node and a Reviewer node. `review: required` is the default; `review: none` must be explicit and is reserved initially for deterministic release, integration, or closeout work whose accepted predecessors are already reviewed. Do not create Reviewer subclasses, enable reviewing on producer agents, or require users to author the generated review node. @@ -338,7 +338,7 @@ Acceptance: Acceptance: -- [ ] Architect → Tester → Engineer and Engineer/Tester → Technical Writer materialize without profile-authored graph IDs. +- [ ] Researcher → Reviewer remains parallel to Architect → Tester → Engineer → Technical Writer → Releaser, and every required actor is independently reviewed, without profile-authored graph IDs. - [ ] Proposal review gates decision and every required Actor → Reviewer pair gates downstream work-item readiness. - [ ] Releaser waits for approved Engineer and Technical Writer work-item pairs and every other applicable required review. - [x] `workday-closing` → Reporter materializes as an ordinary condition dependency. @@ -379,7 +379,7 @@ Acceptance: Acceptance: - [ ] Proposal review → decision and each required Actor → Reviewer pair → downstream readiness pass through the CLI. The earlier reduced proposal did not include the six fixed SDK work items required by the acceptance specification. -- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. This remains to be replayed inside the unchanged SDK golden campaign. +- [ ] Request changes → same actor revision → same Reviewer revision → approval passes without changing prior candidates or reviews. This remains to be replayed inside the approved SDK v4 golden campaign. - [ ] Two projects progress in one team graph without copying project graphs or leaking context. ### Phase 5 — Clean cutover and managed CLI acceptance @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact TreeDX `depends_on` intake, endpoint-grant denial, and PostgreSQL admission/settlement have focused tests; TreeDX PR #65 merged to staging. The SDK golden has not passed (Platform #520). +- Proposal, estimate, one-graph projection, exact TreeDX dependency intake, admission/settlement, and decision-scoped predecessor custody have focused tests. SDK planning produced genuine estimates and an accepted exact decision; diagnostic acting paths reached Release, including bounded revision/re-review. No complete golden workday has passed (Platform #520). ### Current active blocker -- No localized living-graph implementation blocker is active: focused tests cover complete-draft review, exact question/authority/external/lifecycle conditions, deterministic dependency projection, transactional PostgreSQL admission, review-cycle recovery, and exactly-once settlement. Live lifecycle proof remains an acceptance task. +- No focused component execution blocker is known; see `agent-architecture.md`. Native Reporter exact publication/reference persistence passed focused live acceptance, but full failed-attempt coverage and the golden lifecycle remain unproven (Platform #520). ### Next acceptance milestone -- Run the unchanged SDK golden from discussion and genuine estimates through decision, Actor → Reviewer revision, approval, settlement, and cleanup. +- After the execution blocker is repaired, refreeze unchanged SDK objectives and complete genuine estimates, exact decision, six generated Actor/Reviewer pairs, revision/re-review, Reporter, settlement and teardown; prior diagnostics are not golden evidence. ## Completion diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index df929514..7fe263fa 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -21,7 +21,7 @@ ### 2. Assignment and guest contract - [x] An Architect assignment with an exact Architecture Book receives it as a read grant and gets a valid `knowledge//.md` write target. Admission rejects a missing Book. API assignment-builder tests: 18 passing. -- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. Agent guest tests: 39 passing; Agent typecheck passes. +- [x] The guest constrains Knowledge output to the granted ID/slug and exact Book reference. The repaired schema passed a live Luna/low Kata assignment: Architect produced the granted SDK Architecture Knowledge page with the exact Book reference; focused Agent tests and type-check also pass. This is a guest-contract check, not golden acceptance. - [x] Exercise the proposal → generated graph → immutable assignment → guest-context transformation in one local integration fixture, asserting exact published Book bytes, write target, timing budget, and no external mutation. The fixture produced 14 nodes, a 180-second Architect allocation, one exact Architecture Book context item, and a constrained Knowledge output at `knowledge/sdk-architecture/knowledge-bb1ba00e45b117114756c0d6.md`. - [x] Confirm Researcher, Architect, and generated Reviewer output/grant contracts against the frozen proposal before a live workday. The cross-package fixture uses the actual published SDK role profiles, checks requested permissions against their activity ceilings, builds each role's grant, and verifies the Architect Knowledge output schema. This is local contract evidence, not an agent-execution result. @@ -37,6 +37,13 @@ - [x] Record a passing intermediate preflight receipt in Platform Issue #520 with focused test results, runtime digests, exact refs, and an unchanged external-state baseline. The local freeze SHA-256 is `d38055c31a2a690b0c90186875e1dc613a4d7adf7906ff590210bd891b572419`. - [x] Hand the frozen SDK proposal and a schema-valid, read-only `trsd workdays plan --plan` request back to Stage 0 of `agent-acceptance.md`. Starting and judging the SDK → API → joint workdays belongs exclusively to that acceptance plan, after its full campaign freeze; no golden checkbox is marked from this handoff. +### 5. Mandatory executable regression gate + +- [x] Restore a package-owned scene/guarantee runner that fails closed on missing implementations, skipped/empty evidence, absent prerequisites, and uncovered required cases; retain exact local receipts in Platform #520. +- [x] Execute coded component scenes for SDK, API, Agent, Deployment isolation, and CLI operator boundaries; these are preflight evidence only, not a golden workday pass. +- [ ] Reconcile every remaining stale catalog binding against current ownership and semantics; do not map a broad guarantee to an unrelated passing test or revive retired runtime paths. +- [ ] Prove the unchanged full SDK golden through the real graph, then proceed to API/joint acceptance under `agent-acceptance.md`. + ## Current frontier -Intermediate preflight passed. The SDK workday request with eight canonical class IDs, 20% planning, equal 12.5% class targets, simulation mode, and the one canonical proposal validated through `trsd workdays plan --plan` without creating a workday. Return to Stage 0 of `agent-acceptance.md`: refresh its full all-project campaign manifest and external-state inventory, then create one SDK preflight/workday. A passing fixture is not a passing golden workday; no golden workday has passed. +The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 2e00dab3..dcc2a772 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -37,8 +37,10 @@ $comment: >- must additionally enforce ordered estimate bounds; unique work-item IDs; local, acyclic dependencies; requested permissions within profile and policy ceilings; exact current authority refs; deterministic node/edge identity; - one active assignment per node revision; repeated dependency-ordered planning cycles; bounded - review cycles; immutable assignment inputs; and exactly-once settlement. + one active assignment per node revision; repeated dependency-ordered planning cycles; the + parallel question-driven Researcher -> Reviewer and Architect -> Tester -> Engineer -> + Technical Writer -> Releaser branches; bounded review cycles; immutable assignment inputs; + and exactly-once settlement. # A document validated at the root must be exactly one stored record type. oneOf: From feb733110d27a935024fa79d16accf8c2c527d4c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 07:26:30 -0400 Subject: [PATCH 398/501] docs(agents): keep diagnostic frontier and canonical completion gaps honest --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 60607a64..3166af70 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, admission, handler selection, workspace enforcement, and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; six diagnostic Actor/Reviewer pairs passed with clock checks and teardown. Full lifecycle acceptance remains in `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the canonical chat Kernel completion repair and 30 exact component scene checks are integrated. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). ### Current active blocker -- The coded component scenes and current Agent binding audit pass. Historical live-outcome guarantees remain unproven and are explicitly rejected by the component runner; no current focused-estimating blocker is known. Exact evidence and remaining live-contract migration are in Platform #520. +- No current focused-estimating blocker is known. Coordinated API/provider/guest activation and fresh runtime read-back remain required; historical live-outcome guarantees cannot be certified by component checks (Platform #520). ### Next acceptance milestone -- Complete the active unchanged SDK golden through decision-bound execution; verify measured usage, settlement and teardown using live evidence, not component receipts. +- Prove the rebuilt provider and guest use the checked contracts, preserve clock/credential/workspace boundaries, and pass the native live scene gate during the fresh SDK golden described in `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 84475992..7b45e116 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact TreeDX dependency intake, admission/settlement, and decision-scoped predecessor custody have focused tests. SDK planning produced genuine estimates and an accepted exact decision; diagnostic acting paths reached Release, including bounded revision/re-review. No complete golden workday has passed (Platform #520). +- Proposal, estimate, one-graph projection, exact dependency intake and settlement have focused tests. The SDK diagnostic completed six approved Actor/Reviewer pairs, including genuine Engineer and Writer revisions; Reporter closeout and clean full golden acceptance remain unproven (Platform #520). ### Current active blocker -- No focused component execution blocker is known; see `agent-architecture.md`. Native Reporter exact publication/reference persistence passed focused live acceptance, but full failed-attempt coverage and the golden lifecycle remain unproven (Platform #520). +- Historical chat attempts returned without canonical results, and an API reload interrupted one review. The corrected ordinary completion path is merged with unit, real PostgreSQL and scene coverage; coordinated activation and a fresh run must prove it. Do not backfill diagnostic failures (Platform #520). ### Next acceptance milestone -- After the execution blocker is repaired, refreeze unchanged SDK objectives and complete genuine estimates, exact decision, six generated Actor/Reviewer pairs, revision/re-review, Reporter, settlement and teardown; prior diagnostics are not golden evidence. +- Finish diagnostic Reporter/settlement, activate the checked repair at an idle boundary, then refreeze and prove the unchanged SDK golden with canonical chat results, exact authority, useful reviewed outputs, settlement, teardown and unchanged external state. ## Completion From e871ea3773d11b61a9ad1d425de928436388ff92 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 07:29:55 -0400 Subject: [PATCH 399/501] docs(agents): keep diagnostic frontier and canonical completion gaps honest (#551) --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 60607a64..3166af70 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, admission, handler selection, workspace enforcement, and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; six diagnostic Actor/Reviewer pairs passed with clock checks and teardown. Full lifecycle acceptance remains in `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the canonical chat Kernel completion repair and 30 exact component scene checks are integrated. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). ### Current active blocker -- The coded component scenes and current Agent binding audit pass. Historical live-outcome guarantees remain unproven and are explicitly rejected by the component runner; no current focused-estimating blocker is known. Exact evidence and remaining live-contract migration are in Platform #520. +- No current focused-estimating blocker is known. Coordinated API/provider/guest activation and fresh runtime read-back remain required; historical live-outcome guarantees cannot be certified by component checks (Platform #520). ### Next acceptance milestone -- Complete the active unchanged SDK golden through decision-bound execution; verify measured usage, settlement and teardown using live evidence, not component receipts. +- Prove the rebuilt provider and guest use the checked contracts, preserve clock/credential/workspace boundaries, and pass the native live scene gate during the fresh SDK golden described in `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 84475992..7b45e116 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact TreeDX dependency intake, admission/settlement, and decision-scoped predecessor custody have focused tests. SDK planning produced genuine estimates and an accepted exact decision; diagnostic acting paths reached Release, including bounded revision/re-review. No complete golden workday has passed (Platform #520). +- Proposal, estimate, one-graph projection, exact dependency intake and settlement have focused tests. The SDK diagnostic completed six approved Actor/Reviewer pairs, including genuine Engineer and Writer revisions; Reporter closeout and clean full golden acceptance remain unproven (Platform #520). ### Current active blocker -- No focused component execution blocker is known; see `agent-architecture.md`. Native Reporter exact publication/reference persistence passed focused live acceptance, but full failed-attempt coverage and the golden lifecycle remain unproven (Platform #520). +- Historical chat attempts returned without canonical results, and an API reload interrupted one review. The corrected ordinary completion path is merged with unit, real PostgreSQL and scene coverage; coordinated activation and a fresh run must prove it. Do not backfill diagnostic failures (Platform #520). ### Next acceptance milestone -- After the execution blocker is repaired, refreeze unchanged SDK objectives and complete genuine estimates, exact decision, six generated Actor/Reviewer pairs, revision/re-review, Reporter, settlement and teardown; prior diagnostics are not golden evidence. +- Finish diagnostic Reporter/settlement, activate the checked repair at an idle boundary, then refreeze and prove the unchanged SDK golden with canonical chat results, exact authority, useful reviewed outputs, settlement, teardown and unchanged external state. ## Completion From c6745cdc66f984bfbd9c88f8d211a47a3bb3d9fd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:03:03 -0400 Subject: [PATCH 400/501] docs: record enforced canonical completion regression gates --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- docs/agent-intermediate-plan.md | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3166af70..167c0f41 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,7 +546,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the canonical chat Kernel completion repair and 30 exact component scene checks are integrated. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; Agent and API now consume one SDK workspace-path authority, with 31 Agent scene checks enforced in Actions. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). ### Current active blocker diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 7b45e116..98a4de8a 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Historical chat attempts returned without canonical results, and an API reload interrupted one review. The corrected ordinary completion path is merged with unit, real PostgreSQL and scene coverage; coordinated activation and a fresh run must prove it. Do not backfill diagnostic failures (Platform #520). +- Clean acceptance remains unproven: canonical completion and truthful send receipts now have merged API regression coverage, but coordinated activation and a fresh run are required. Preserve diagnostic failed attempts rather than backfilling them (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 7fe263fa..0a48b6f1 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -41,6 +41,7 @@ - [x] Restore a package-owned scene/guarantee runner that fails closed on missing implementations, skipped/empty evidence, absent prerequisites, and uncovered required cases; retain exact local receipts in Platform #520. - [x] Execute coded component scenes for SDK, API, Agent, Deployment isolation, and CLI operator boundaries; these are preflight evidence only, not a golden workday pass. +- [x] Enforce the package-owned component scenes in SDK, API, Agent and CLI Actions using the exact tested Reviewer Action. Deployment's scene gate is in its checked integration PR; an unrelated Identity runtime gate still prevents that PR's merge. Component coverage never attests the full golden or broad live guarantees. - [ ] Reconcile every remaining stale catalog binding against current ownership and semantics; do not map a broad guarantee to an unrelated passing test or revive retired runtime paths. - [ ] Prove the unchanged full SDK golden through the real graph, then proceed to API/joint acceptance under `agent-acceptance.md`. From ca3fc6cb1dc05e3a2a184e02dec2700fd25c32d3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:07:46 -0400 Subject: [PATCH 401/501] docs: record enforced canonical completion regression gates (#552) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- docs/agent-intermediate-plan.md | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3166af70..167c0f41 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,7 +546,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the canonical chat Kernel completion repair and 30 exact component scene checks are integrated. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; Agent and API now consume one SDK workspace-path authority, with 31 Agent scene checks enforced in Actions. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). ### Current active blocker diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 7b45e116..98a4de8a 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Historical chat attempts returned without canonical results, and an API reload interrupted one review. The corrected ordinary completion path is merged with unit, real PostgreSQL and scene coverage; coordinated activation and a fresh run must prove it. Do not backfill diagnostic failures (Platform #520). +- Clean acceptance remains unproven: canonical completion and truthful send receipts now have merged API regression coverage, but coordinated activation and a fresh run are required. Preserve diagnostic failed attempts rather than backfilling them (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 7fe263fa..0a48b6f1 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -41,6 +41,7 @@ - [x] Restore a package-owned scene/guarantee runner that fails closed on missing implementations, skipped/empty evidence, absent prerequisites, and uncovered required cases; retain exact local receipts in Platform #520. - [x] Execute coded component scenes for SDK, API, Agent, Deployment isolation, and CLI operator boundaries; these are preflight evidence only, not a golden workday pass. +- [x] Enforce the package-owned component scenes in SDK, API, Agent and CLI Actions using the exact tested Reviewer Action. Deployment's scene gate is in its checked integration PR; an unrelated Identity runtime gate still prevents that PR's merge. Component coverage never attests the full golden or broad live guarantees. - [ ] Reconcile every remaining stale catalog binding against current ownership and semantics; do not map a broad guarantee to an unrelated passing test or revive retired runtime paths. - [ ] Prove the unchanged full SDK golden through the real graph, then proceed to API/joint acceptance under `agent-acceptance.md`. From 9e6042980488baf7e89885584c3253a2ebae8a6b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:29:45 -0400 Subject: [PATCH 402/501] docs: retain honest chat integration and runtime acceptance frontier --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 167c0f41..270063f2 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No current focused-estimating blocker is known. Coordinated API/provider/guest activation and fresh runtime read-back remain required; historical live-outcome guarantees cannot be certified by component checks (Platform #520). +- No current focused-estimating blocker is known. Provider and guest consume the checked SDK path contract; native usage read-back now exhausts pagination. An SDK dependency rebuild returned an unhealthy-operation error despite ready targets; verify coordinated runtime read-back before the fresh golden (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 98a4de8a..73ea484b 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Clean acceptance remains unproven: canonical completion and truthful send receipts now have merged API regression coverage, but coordinated activation and a fresh run are required. Preserve diagnostic failed attempts rather than backfilling them (Platform #520). +- Clean acceptance remains unproven. API scene coverage now includes durable response publication, canonical completion, asynchronous integration and exactly-once delivery against PostgreSQL; the fresh live send must prove that handoff (Platform #520). Preserve diagnostic failures rather than backfilling them. ### Next acceptance milestone From 581a043fb8d8b7be4d88bd7388bb75d2f363e817 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:31:18 -0400 Subject: [PATCH 403/501] docs: retain honest chat integration and runtime acceptance frontier (#553) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 167c0f41..270063f2 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No current focused-estimating blocker is known. Coordinated API/provider/guest activation and fresh runtime read-back remain required; historical live-outcome guarantees cannot be certified by component checks (Platform #520). +- No current focused-estimating blocker is known. Provider and guest consume the checked SDK path contract; native usage read-back now exhausts pagination. An SDK dependency rebuild returned an unhealthy-operation error despite ready targets; verify coordinated runtime read-back before the fresh golden (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 98a4de8a..73ea484b 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Clean acceptance remains unproven: canonical completion and truthful send receipts now have merged API regression coverage, but coordinated activation and a fresh run are required. Preserve diagnostic failed attempts rather than backfilling them (Platform #520). +- Clean acceptance remains unproven. API scene coverage now includes durable response publication, canonical completion, asynchronous integration and exactly-once delivery against PostgreSQL; the fresh live send must prove that handoff (Platform #520). Preserve diagnostic failures rather than backfilling them. ### Next acceptance milestone From 2ba66c1fb6af2d3b1bf0448d71dccf2364b5cb5b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:53:47 -0400 Subject: [PATCH 404/501] docs: record actual provider storage acceptance blocker --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 270063f2..a71d3bbc 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No current focused-estimating blocker is known. Provider and guest consume the checked SDK path contract; native usage read-back now exhausts pagination. An SDK dependency rebuild returned an unhealthy-operation error despite ready targets; verify coordinated runtime read-back before the fresh golden (Platform #520). +- Provider admission is blocked by insufficient encrypted-volume reserve/headroom despite stale ready selections. Preserve the safety threshold and current candidate evidence; an exact storage inventory is required before cleanup. Native usage paging and production-dependency regression gates are implemented (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 73ea484b..549db173 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Clean acceptance remains unproven. API scene coverage now includes durable response publication, canonical completion, asynchronous integration and exactly-once delivery against PostgreSQL; the fresh live send must prove that handoff (Platform #520). Preserve diagnostic failures rather than backfilling them. +- Runtime admission is blocked by the provider storage gate described in `agent-architecture.md`. The PostgreSQL publication/completion/integration regression is checked, but queued live delivery and clean full acceptance remain unproven. Preserve diagnostic failures rather than backfilling them (Platform #520). ### Next acceptance milestone From e7e0f64fe97418876a342eb7b32caaabc3531e24 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 08:57:51 -0400 Subject: [PATCH 405/501] docs: record actual provider storage acceptance blocker (#554) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 270063f2..a71d3bbc 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No current focused-estimating blocker is known. Provider and guest consume the checked SDK path contract; native usage read-back now exhausts pagination. An SDK dependency rebuild returned an unhealthy-operation error despite ready targets; verify coordinated runtime read-back before the fresh golden (Platform #520). +- Provider admission is blocked by insufficient encrypted-volume reserve/headroom despite stale ready selections. Preserve the safety threshold and current candidate evidence; an exact storage inventory is required before cleanup. Native usage paging and production-dependency regression gates are implemented (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 73ea484b..549db173 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Clean acceptance remains unproven. API scene coverage now includes durable response publication, canonical completion, asynchronous integration and exactly-once delivery against PostgreSQL; the fresh live send must prove that handoff (Platform #520). Preserve diagnostic failures rather than backfilling them. +- Runtime admission is blocked by the provider storage gate described in `agent-architecture.md`. The PostgreSQL publication/completion/integration regression is checked, but queued live delivery and clean full acceptance remain unproven. Preserve diagnostic failures rather than backfilling them (Platform #520). ### Next acceptance milestone From aae5ff99745d375a73babe3ba06bcec6e99d9abd Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 14:38:48 -0400 Subject: [PATCH 406/501] docs: record tested analysis recovery and live application gap --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a71d3bbc..8f54322a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider admission is blocked by insufficient encrypted-volume reserve/headroom despite stale ready selections. Preserve the safety threshold and current candidate evidence; an exact storage inventory is required before cleanup. Native usage paging and production-dependency regression gates are implemented (Platform #520). +- Provider admission is blocked by encrypted-volume reserve/headroom. Inventory identifies unreleased stopped work and expired analysis disks; the tested fixed recovery path preserves work and reclaims only analysis after fenced teardown and durable interruption receipts. Root application and health read-back remain required; do not lower the threshold or count local tests as live cleanup (Platform #520). ### Next acceptance milestone From 86a8f236768ec0b83fc8fed9d0436ca68abaf1c3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 14:58:17 -0400 Subject: [PATCH 407/501] docs: record tested analysis recovery and live application gap (#555) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a71d3bbc..8f54322a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider admission is blocked by insufficient encrypted-volume reserve/headroom despite stale ready selections. Preserve the safety threshold and current candidate evidence; an exact storage inventory is required before cleanup. Native usage paging and production-dependency regression gates are implemented (Platform #520). +- Provider admission is blocked by encrypted-volume reserve/headroom. Inventory identifies unreleased stopped work and expired analysis disks; the tested fixed recovery path preserves work and reclaims only analysis after fenced teardown and durable interruption receipts. Root application and health read-back remain required; do not lower the threshold or count local tests as live cleanup (Platform #520). ### Next acceptance milestone From 1dec2eaa4355bd0a95851ffd0c025af88c86faca Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 15:03:41 -0400 Subject: [PATCH 408/501] docs: accept storage recovery and retain real guest-model frontier --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8f54322a..3f733067 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider admission is blocked by encrypted-volume reserve/headroom. Inventory identifies unreleased stopped work and expired analysis disks; the tested fixed recovery path preserves work and reclaims only analysis after fenced teardown and durable interruption receipts. Root application and health read-back remain required; do not lower the threshold or count local tests as live cleanup (Platform #520). +- Storage recovery is accepted: expired analysis disks reclaimed with durable receipts, work disks preserved, and provider admission healthy. The current guest rejects GPT-6 Luna despite a successful same-version host probe and registered credential refresh; guest build/credential/network parity remains unproven. Preserve failed attempts and do not substitute models or claim full acceptance (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 549db173..64b9feaf 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Runtime admission is blocked by the provider storage gate described in `agent-architecture.md`. The PostgreSQL publication/completion/integration regression is checked, but queued live delivery and clean full acceptance remain unproven. Preserve diagnostic failures rather than backfilling them (Platform #520). +- Runtime's current guest-model boundary is described in `agent-architecture.md`; storage is no longer a blocker. The diagnostic terminalized degraded with cancelled Reporter and incomplete content evidence. Canonical live delivery and clean full acceptance remain unproven; preserve failures rather than backfilling them (Platform #520). ### Next acceptance milestone -- Finish diagnostic Reporter/settlement, activate the checked repair at an idle boundary, then refreeze and prove the unchanged SDK golden with canonical chat results, exact authority, useful reviewed outputs, settlement, teardown and unchanged external state. +- Restore canonical live delivery, then refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. ## Completion From 5f41b68afecf441fe382bcb98c1807bc0bf6124c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 15:05:04 -0400 Subject: [PATCH 409/501] docs: accept storage recovery and retain real guest-model frontier (#556) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8f54322a..3f733067 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider admission is blocked by encrypted-volume reserve/headroom. Inventory identifies unreleased stopped work and expired analysis disks; the tested fixed recovery path preserves work and reclaims only analysis after fenced teardown and durable interruption receipts. Root application and health read-back remain required; do not lower the threshold or count local tests as live cleanup (Platform #520). +- Storage recovery is accepted: expired analysis disks reclaimed with durable receipts, work disks preserved, and provider admission healthy. The current guest rejects GPT-6 Luna despite a successful same-version host probe and registered credential refresh; guest build/credential/network parity remains unproven. Preserve failed attempts and do not substitute models or claim full acceptance (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 549db173..64b9feaf 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Runtime admission is blocked by the provider storage gate described in `agent-architecture.md`. The PostgreSQL publication/completion/integration regression is checked, but queued live delivery and clean full acceptance remain unproven. Preserve diagnostic failures rather than backfilling them (Platform #520). +- Runtime's current guest-model boundary is described in `agent-architecture.md`; storage is no longer a blocker. The diagnostic terminalized degraded with cancelled Reporter and incomplete content evidence. Canonical live delivery and clean full acceptance remain unproven; preserve failures rather than backfilling them (Platform #520). ### Next acceptance milestone -- Finish diagnostic Reporter/settlement, activate the checked repair at an idle boundary, then refreeze and prove the unchanged SDK golden with canonical chat results, exact authority, useful reviewed outputs, settlement, teardown and unchanged external state. +- Restore canonical live delivery, then refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. ## Completion From 51eba02bc883f4f5ea4589d9324eed845b52e17c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 16:13:26 -0400 Subject: [PATCH 410/501] docs: record verified response delivery and fresh SDK acceptance authority --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7cd9f746..8bc321e6 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -268,7 +268,7 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260925-l` (fresh estimate-free draft copied from the exact TreeDX content at commit `ade82437cbe53c2a573c111758e781f11b23eeeb`; active workday `workday-b5240d15-fbca-4d60-9410-70067b1a5311`). Prior cancelled workdays, including J and K, provide defect evidence only; their estimates and assignment results are not reused. The six SDK work items retain their objectives, with the Tester checking stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. +- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The API incorporates the normalized selection in its intent and preflight digests; SDK does not compute those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3f733067..1cfad86c 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Storage recovery is accepted: expired analysis disks reclaimed with durable receipts, work disks preserved, and provider admission healthy. The current guest rejects GPT-6 Luna despite a successful same-version host probe and registered credential refresh; guest build/credential/network parity remains unproven. Preserve failed attempts and do not substitute models or claim full acceptance (Platform #520). +- Storage recovery is accepted and rebuilding the development sandbox restored GPT-6 Luna execution, with first/final clock checks, measured usage and verified teardown. No current storage/model blocker remains; response delivery and full golden acceptance are tracked in `agent-assignments.md` (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 64b9feaf..9625c496 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Runtime's current guest-model boundary is described in `agent-architecture.md`; storage is no longer a blocker. The diagnostic terminalized degraded with cancelled Reporter and incomplete content evidence. Canonical live delivery and clean full acceptance remain unproven; preserve failures rather than backfilling them (Platform #520). +- No active response-delivery blocker remains: API #403 supplies exact result-content read-back and its receipt, with 1,224 tests, 42 scene checks and live delivery passing. The terminal degraded SDK diagnostic remains a failure, not backfilled acceptance; a fresh pre-run freeze and complete SDK golden are still required (Platform #520). ### Next acceptance milestone -- Restore canonical live delivery, then refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. +- Refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. ## Completion From 88439589d2b234b57040a7cb4596da73526c2399 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 16:14:55 -0400 Subject: [PATCH 411/501] docs: record verified response delivery and fresh SDK acceptance authority (#557) --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7cd9f746..8bc321e6 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -268,7 +268,7 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260925-l` (fresh estimate-free draft copied from the exact TreeDX content at commit `ade82437cbe53c2a573c111758e781f11b23eeeb`; active workday `workday-b5240d15-fbca-4d60-9410-70067b1a5311`). Prior cancelled workdays, including J and K, provide defect evidence only; their estimates and assignment results are not reused. The six SDK work items retain their objectives, with the Tester checking stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. +- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The API incorporates the normalized selection in its intent and preflight digests; SDK does not compute those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3f733067..1cfad86c 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Storage recovery is accepted: expired analysis disks reclaimed with durable receipts, work disks preserved, and provider admission healthy. The current guest rejects GPT-6 Luna despite a successful same-version host probe and registered credential refresh; guest build/credential/network parity remains unproven. Preserve failed attempts and do not substitute models or claim full acceptance (Platform #520). +- Storage recovery is accepted and rebuilding the development sandbox restored GPT-6 Luna execution, with first/final clock checks, measured usage and verified teardown. No current storage/model blocker remains; response delivery and full golden acceptance are tracked in `agent-assignments.md` (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 64b9feaf..9625c496 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Runtime's current guest-model boundary is described in `agent-architecture.md`; storage is no longer a blocker. The diagnostic terminalized degraded with cancelled Reporter and incomplete content evidence. Canonical live delivery and clean full acceptance remain unproven; preserve failures rather than backfilling them (Platform #520). +- No active response-delivery blocker remains: API #403 supplies exact result-content read-back and its receipt, with 1,224 tests, 42 scene checks and live delivery passing. The terminal degraded SDK diagnostic remains a failure, not backfilled acceptance; a fresh pre-run freeze and complete SDK golden are still required (Platform #520). ### Next acceptance milestone -- Restore canonical live delivery, then refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. +- Refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. ## Completion From 98ea29d349c3a300c61d198e8ecdea04deda5757 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 21:00:50 -0400 Subject: [PATCH 412/501] docs: record SDK W acceptance frontier without claiming a pass --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1cfad86c..3926b1b7 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; Agent and API now consume one SDK workspace-path authority, with 31 Agent scene checks enforced in Actions. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the concrete-path and canonical Reviewer-instruction repairs are activated. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Storage recovery is accepted and rebuilding the development sandbox restored GPT-6 Luna execution, with first/final clock checks, measured usage and verified teardown. No current storage/model blocker remains; response delivery and full golden acceptance are tracked in `agent-assignments.md` (Platform #520). +- Automatic released-analysis cleanup is activated, but interrupted-unreleased recovery and bounded retention remain unproven (Deployment #779). The corrected Releaser instruction has coded regression coverage but still requires successful live revision evidence. ### Next acceptance milestone -- Prove the rebuilt provider and guest use the checked contracts, preserve clock/credential/workspace boundaries, and pass the native live scene gate during the fresh SDK golden described in `agent-assignments.md`. +- Verify the activated handler through a bounded revision and prove automatic workspace recovery/retention without operator cleanup; then support the fresh SDK golden described in `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 9625c496..3d01b8b4 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact dependency intake and settlement have focused tests. The SDK diagnostic completed six approved Actor/Reviewer pairs, including genuine Engineer and Writer revisions; Reporter closeout and clean full golden acceptance remain unproven (Platform #520). +- SDK W produced genuine estimates, an exact accepted decision and five approved Actor/Reviewer pairs. It was cancelled after release request-changes exhausted its bounded allowance without a successful correction; this is failure evidence, not a golden pass (Platform #520). ### Current active blocker -- No active response-delivery blocker remains: API #403 supplies exact result-content read-back and its receipt, with 1,224 tests, 42 scene checks and live delivery passing. The terminal degraded SDK diagnostic remains a failure, not backfilled acceptance; a fresh pre-run freeze and complete SDK golden are still required (Platform #520). +- The second planning cycle did not materialize, and successful bounded release correction/re-review remains unproven. API #406/#407 covers maintenance failure isolation; it does not yet establish the cause of the live planning stall. Runtime repair status belongs to `agent-architecture.md`. ### Next acceptance milestone -- Refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. +- Prove repeated planning and bounded correction/re-review through the existing path, then refreeze the unchanged SDK golden with current artifact digests and complete Reporter, settlement, teardown and external-state checks; never reuse W as passing evidence. ## Completion From fae26e55642d76f55da63645d2462e78367bac61 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 21:02:59 -0400 Subject: [PATCH 413/501] docs: record SDK W acceptance frontier without claiming a pass (#558) --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1cfad86c..3926b1b7 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; Agent and API now consume one SDK workspace-path authority, with 31 Agent scene checks enforced in Actions. Full graph lifecycle evidence belongs to `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the concrete-path and canonical Reviewer-instruction repairs are activated. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Storage recovery is accepted and rebuilding the development sandbox restored GPT-6 Luna execution, with first/final clock checks, measured usage and verified teardown. No current storage/model blocker remains; response delivery and full golden acceptance are tracked in `agent-assignments.md` (Platform #520). +- Automatic released-analysis cleanup is activated, but interrupted-unreleased recovery and bounded retention remain unproven (Deployment #779). The corrected Releaser instruction has coded regression coverage but still requires successful live revision evidence. ### Next acceptance milestone -- Prove the rebuilt provider and guest use the checked contracts, preserve clock/credential/workspace boundaries, and pass the native live scene gate during the fresh SDK golden described in `agent-assignments.md`. +- Verify the activated handler through a bounded revision and prove automatic workspace recovery/retention without operator cleanup; then support the fresh SDK golden described in `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 9625c496..3d01b8b4 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- Proposal, estimate, one-graph projection, exact dependency intake and settlement have focused tests. The SDK diagnostic completed six approved Actor/Reviewer pairs, including genuine Engineer and Writer revisions; Reporter closeout and clean full golden acceptance remain unproven (Platform #520). +- SDK W produced genuine estimates, an exact accepted decision and five approved Actor/Reviewer pairs. It was cancelled after release request-changes exhausted its bounded allowance without a successful correction; this is failure evidence, not a golden pass (Platform #520). ### Current active blocker -- No active response-delivery blocker remains: API #403 supplies exact result-content read-back and its receipt, with 1,224 tests, 42 scene checks and live delivery passing. The terminal degraded SDK diagnostic remains a failure, not backfilled acceptance; a fresh pre-run freeze and complete SDK golden are still required (Platform #520). +- The second planning cycle did not materialize, and successful bounded release correction/re-review remains unproven. API #406/#407 covers maintenance failure isolation; it does not yet establish the cause of the live planning stall. Runtime repair status belongs to `agent-architecture.md`. ### Next acceptance milestone -- Refreeze and prove the unchanged SDK golden with exact authority, useful reviewed outputs, Reporter, settlement, teardown and unchanged external state. The terminal degraded diagnostic cannot count as a pass. +- Prove repeated planning and bounded correction/re-review through the existing path, then refreeze the unchanged SDK golden with current artifact digests and complete Reporter, settlement, teardown and external-state checks; never reuse W as passing evidence. ## Completion From ee14661b8985ce156b6a7551cf704086da284075 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 21:47:02 -0400 Subject: [PATCH 414/501] docs(acceptance): require package-owned automated campaign scenes --- docs/agent-acceptance.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 8bc321e6..2b4b33fd 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -33,6 +33,29 @@ The first two proposals are SDK and API because they exercise the portable contr ## Non-negotiable rules +### Automated execution authority + +Every criterion in this specification must be bound to executable package-owned +guarantees and scenes. Manual observation, ad-hoc CLI sequences, fixture-only +passes, and terminal status do not satisfy acceptance. Unit/integration scenes +protect components; live campaign scenes drive and monitor the genuine proposal +and workday lifecycle and verify its authoritative evidence. + +Packages ship their own guarantee definitions and executable verifier assets. +Reviewer provides the unified discovery, selection, execution and receipt +interface; it must not copy owner guarantees into a central catalog. Small +scenes cover individual boundaries and compose into project, joint, portfolio +and controlled-failure suites using the same assertions. Installed-package +execution, not just source-checkout execution, is required. + +Whole-specification coverage must fail closed when a criterion is new, changed, +unbound, backed by a missing verifier, or supported only by partial evidence. +Coverage bindings identify the exact authoritative requirement and its coded +assertions; they do not duplicate its prose or change the fixed golden request. +A partial suite pass is never a full campaign pass. Current implementation and +coverage gaps are tracked in Platform #520, Agent #168 and Reviewer #65; this +requirement does not claim that complete automation already exists. + - Every acceptance workday has the one authoritative `executionMode: simulation`. Assignments execute under that workday mode; graph, result, settlement, and CLI views derive it rather than owning independent mode values. A contradictory derived label is a failed run. - Simulation may read and modify any file in a disposable repository workspace, run builds and tests, combine candidates, create local commits and tags, and exercise release logic. - Simulation must not push to an upstream source or library repository, create or update a remote pull request or issue, publish a package or release, deploy, rotate credentials, mutate live data, or call another externally mutating service. @@ -683,7 +706,9 @@ Run these only after the normal golden portfolio passes. Faults belong to the ac ## Mandatory live monitoring -The implementation agent must watch every workday while it runs. Starting a workday and checking the terminal status later is not acceptance. +The automated campaign scene must watch every workday while it runs and retain +the transitions below. Starting a workday and checking terminal status later, +or substituting manual spot-checks for the coded monitor, is not acceptance. At minimum, inspect and retain a snapshot on: @@ -697,7 +722,13 @@ At minimum, inspect and retain a snapshot on: For each new assignment, compare its exact source/authority/context refs, predecessor result IDs, effective profile, handler and origin, grant, workspace/base/branch/writable paths, estimate, deadline, provider/runtime build, execution mode, and node revision with the expected graph before allowing the run to continue. -The monitor must immediately stop new admissions and report when an assignment has the wrong project, class, activity, handler, dependency, context, grant, base, workspace, mode, estimate, or deadline; when an agent mutates outside its workspace; when a Reviewer mutates a candidate; when an expected node is skipped; or when a result cannot support its summary. +The coded monitor must immediately stop new admissions through the supported +scoped workday operation and retain a failed guarantee receipt when an +assignment has the wrong project, class, activity, handler, dependency, context, +grant, base, workspace, mode, estimate, or deadline; when an agent mutates outside +its workspace; when a Reviewer mutates a candidate; when an expected node is +skipped; or when a result cannot support its summary. Missing observation or +incomplete pagination is an evidence failure, never permission to infer a pass. ## Pass criteria for one project From 3728c5d56f976d337138e8e3520862a51b154f62 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sat, 26 Sep 2026 21:48:53 -0400 Subject: [PATCH 415/501] docs(acceptance): require package-owned automated campaign scenes (#559) --- docs/agent-acceptance.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 8bc321e6..2b4b33fd 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -33,6 +33,29 @@ The first two proposals are SDK and API because they exercise the portable contr ## Non-negotiable rules +### Automated execution authority + +Every criterion in this specification must be bound to executable package-owned +guarantees and scenes. Manual observation, ad-hoc CLI sequences, fixture-only +passes, and terminal status do not satisfy acceptance. Unit/integration scenes +protect components; live campaign scenes drive and monitor the genuine proposal +and workday lifecycle and verify its authoritative evidence. + +Packages ship their own guarantee definitions and executable verifier assets. +Reviewer provides the unified discovery, selection, execution and receipt +interface; it must not copy owner guarantees into a central catalog. Small +scenes cover individual boundaries and compose into project, joint, portfolio +and controlled-failure suites using the same assertions. Installed-package +execution, not just source-checkout execution, is required. + +Whole-specification coverage must fail closed when a criterion is new, changed, +unbound, backed by a missing verifier, or supported only by partial evidence. +Coverage bindings identify the exact authoritative requirement and its coded +assertions; they do not duplicate its prose or change the fixed golden request. +A partial suite pass is never a full campaign pass. Current implementation and +coverage gaps are tracked in Platform #520, Agent #168 and Reviewer #65; this +requirement does not claim that complete automation already exists. + - Every acceptance workday has the one authoritative `executionMode: simulation`. Assignments execute under that workday mode; graph, result, settlement, and CLI views derive it rather than owning independent mode values. A contradictory derived label is a failed run. - Simulation may read and modify any file in a disposable repository workspace, run builds and tests, combine candidates, create local commits and tags, and exercise release logic. - Simulation must not push to an upstream source or library repository, create or update a remote pull request or issue, publish a package or release, deploy, rotate credentials, mutate live data, or call another externally mutating service. @@ -683,7 +706,9 @@ Run these only after the normal golden portfolio passes. Faults belong to the ac ## Mandatory live monitoring -The implementation agent must watch every workday while it runs. Starting a workday and checking the terminal status later is not acceptance. +The automated campaign scene must watch every workday while it runs and retain +the transitions below. Starting a workday and checking terminal status later, +or substituting manual spot-checks for the coded monitor, is not acceptance. At minimum, inspect and retain a snapshot on: @@ -697,7 +722,13 @@ At minimum, inspect and retain a snapshot on: For each new assignment, compare its exact source/authority/context refs, predecessor result IDs, effective profile, handler and origin, grant, workspace/base/branch/writable paths, estimate, deadline, provider/runtime build, execution mode, and node revision with the expected graph before allowing the run to continue. -The monitor must immediately stop new admissions and report when an assignment has the wrong project, class, activity, handler, dependency, context, grant, base, workspace, mode, estimate, or deadline; when an agent mutates outside its workspace; when a Reviewer mutates a candidate; when an expected node is skipped; or when a result cannot support its summary. +The coded monitor must immediately stop new admissions through the supported +scoped workday operation and retain a failed guarantee receipt when an +assignment has the wrong project, class, activity, handler, dependency, context, +grant, base, workspace, mode, estimate, or deadline; when an agent mutates outside +its workspace; when a Reviewer mutates a candidate; when an expected node is +skipped; or when a result cannot support its summary. Missing observation or +incomplete pagination is an evidence failure, never permission to infer a pass. ## Pass criteria for one project From 80a4fe45803b70913b9648fba96cd8d822164118 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 02:49:01 -0400 Subject: [PATCH 416/501] docs: keep SDK frontier focused on automated end-to-end acceptance --- docs/agent-assignments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 3d01b8b4..74ea34dd 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK W produced genuine estimates, an exact accepted decision and five approved Actor/Reviewer pairs. It was cancelled after release request-changes exhausted its bounded allowance without a successful correction; this is failure evidence, not a golden pass (Platform #520). +- SDK W reached five approved pairs but failed bounded release correction; SDK X stopped at the coded planning boundary and passed terminal teardown/settlement checks. Neither is a golden pass; detailed evidence belongs in Platform #520. ### Current active blocker -- The second planning cycle did not materialize, and successful bounded release correction/re-review remains unproven. API #406/#407 covers maintenance failure isolation; it does not yet establish the cause of the live planning stall. Runtime repair status belongs to `agent-architecture.md`. +- No current host or authentication blocker is established. X's short planning window did not fit collaboration and estimates; repeated full-role planning and successful bounded correction/re-review remain unproven. Use the automated campaign feasibility gate, not another blind rerun. ### Next acceptance milestone -- Prove repeated planning and bounded correction/re-review through the existing path, then refreeze the unchanged SDK golden with current artifact digests and complete Reporter, settlement, teardown and external-state checks; never reuse W as passing evidence. +- Execute one fresh frozen SDK campaign through package-owned scenes, including genuine estimates, decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, SDK product gates and unchanged upstream inventory; do not reuse failed-run authority. ## Completion From 895f9d74d3ef292556608f4d425587dc4e7124c8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 02:59:12 -0400 Subject: [PATCH 417/501] docs: keep SDK frontier focused on automated end-to-end acceptance (#560) --- docs/agent-assignments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 3d01b8b4..74ea34dd 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK W produced genuine estimates, an exact accepted decision and five approved Actor/Reviewer pairs. It was cancelled after release request-changes exhausted its bounded allowance without a successful correction; this is failure evidence, not a golden pass (Platform #520). +- SDK W reached five approved pairs but failed bounded release correction; SDK X stopped at the coded planning boundary and passed terminal teardown/settlement checks. Neither is a golden pass; detailed evidence belongs in Platform #520. ### Current active blocker -- The second planning cycle did not materialize, and successful bounded release correction/re-review remains unproven. API #406/#407 covers maintenance failure isolation; it does not yet establish the cause of the live planning stall. Runtime repair status belongs to `agent-architecture.md`. +- No current host or authentication blocker is established. X's short planning window did not fit collaboration and estimates; repeated full-role planning and successful bounded correction/re-review remain unproven. Use the automated campaign feasibility gate, not another blind rerun. ### Next acceptance milestone -- Prove repeated planning and bounded correction/re-review through the existing path, then refreeze the unchanged SDK golden with current artifact digests and complete Reporter, settlement, teardown and external-state checks; never reuse W as passing evidence. +- Execute one fresh frozen SDK campaign through package-owned scenes, including genuine estimates, decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, SDK product gates and unchanged upstream inventory; do not reuse failed-run authority. ## Completion From ff749d556f3077dc2942bd3c91940d19a91d9ae3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 15:15:56 -0400 Subject: [PATCH 418/501] docs(acceptance): bound initial debug workdays to one hour --- docs/agent-acceptance.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 2b4b33fd..5407312a 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -118,13 +118,14 @@ Freeze the resolved workday policy and actual provider offer/configuration along | All-project portfolio | All 17 seeded projects, each with equal positive weight `1`; the allocator normalizes to `100/17` percent per project | Every project: eight classes at `12.5` each | | Controlled failure | Reuse the exact accepted run's selection and allocation snapshot | Reuse the exact accepted run's class targets; only the specified injected fault changes | -The eight classes are `architect`, `researcher`, `tester`, `engineer`, `technical-writer`, `releaser`, `reviewer`, and `reporter`. Every submitted input must also record `executionMode: simulation`, `profileId: default`, the profile revision, `durationSeconds`, `maximumConcurrency`, `communicationConcurrency`, `planningPercent: 20`, `allocationWeight: 1`, `planningTurnMaximumSeconds: 180`, the selected proposal/decision IDs, the provider offer revision, capability/model daily caps, reservations, and remaining supply read-back. Start individual and joint runs from the current `durationSeconds: 28800`, `maximumConcurrency: 1`, `communicationConcurrency: 1` default unless a read-only preflight proves the run cannot fit. Version-check any required policy update and freeze the resulting revision before starting. Expand all class and project mappings into the manifest; do not infer missing mappings from this Markdown table at execution time. +The eight classes are `architect`, `researcher`, `tester`, `engineer`, `technical-writer`, `releaser`, `reviewer`, and `reporter`. Every submitted input must also record `executionMode: simulation`, `profileId: default`, the profile revision, `durationSeconds`, `maximumConcurrency`, `communicationConcurrency`, `planningPercent`, `allocationWeight: 1`, `planningTurnMaximumSeconds: 180`, the selected proposal/decision IDs, the provider offer revision, capability/model daily caps, reservations, and remaining supply read-back. Initial debugging runs use `durationSeconds: 3600`, `planningPercent: 33.333333333333336` (`100/3`: exactly 1,200 seconds), `maximumConcurrency: 1`, and `communicationConcurrency: 1`. This explicit workday override does not change the team's ordinary 20% planning default. Do not automatically extend the hour, truncate viable assignments, or waive acceptance criteria: report a measured shortfall or failed boundary. Version-check any required policy update and freeze the resulting revision before starting. Expand all class and project mappings into the manifest; do not infer missing mappings from this Markdown table at execution time. Use the team's canonical `default` policy (`--profile default`). Freeze its revision and the resolved workday snapshot. Update team defaults through version-checked `workdays profiles update default --input `; explicit workday allocation overrides do not change that policy or existing assignments. Repository allocation profiles, tiers, borrowing, and fixed assignment budgets are not campaign inputs. ```yaml +durationSeconds: 3600 allocation: - planningPercent: 20 + planningPercent: 33.333333333333336 # 20 minutes planning; 40 minutes execution/closeout allocationWeight: 1 planningTurnMaximumSeconds: 180 projectPercentages: {sdk: 100} From db22653f16a394a3083be7652c440cc64d97092a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 16:02:59 -0400 Subject: [PATCH 419/501] docs(acceptance): require five real overlapping SDK executions --- docs/agent-acceptance.md | 2 +- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 5407312a..2110d008 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -118,7 +118,7 @@ Freeze the resolved workday policy and actual provider offer/configuration along | All-project portfolio | All 17 seeded projects, each with equal positive weight `1`; the allocator normalizes to `100/17` percent per project | Every project: eight classes at `12.5` each | | Controlled failure | Reuse the exact accepted run's selection and allocation snapshot | Reuse the exact accepted run's class targets; only the specified injected fault changes | -The eight classes are `architect`, `researcher`, `tester`, `engineer`, `technical-writer`, `releaser`, `reviewer`, and `reporter`. Every submitted input must also record `executionMode: simulation`, `profileId: default`, the profile revision, `durationSeconds`, `maximumConcurrency`, `communicationConcurrency`, `planningPercent`, `allocationWeight: 1`, `planningTurnMaximumSeconds: 180`, the selected proposal/decision IDs, the provider offer revision, capability/model daily caps, reservations, and remaining supply read-back. Initial debugging runs use `durationSeconds: 3600`, `planningPercent: 33.333333333333336` (`100/3`: exactly 1,200 seconds), `maximumConcurrency: 1`, and `communicationConcurrency: 1`. This explicit workday override does not change the team's ordinary 20% planning default. Do not automatically extend the hour, truncate viable assignments, or waive acceptance criteria: report a measured shortfall or failed boundary. Version-check any required policy update and freeze the resulting revision before starting. Expand all class and project mappings into the manifest; do not infer missing mappings from this Markdown table at execution time. +The eight classes are `architect`, `researcher`, `tester`, `engineer`, `technical-writer`, `releaser`, `reviewer`, and `reporter`. Every submitted input must also record `executionMode: simulation`, `profileId: default`, the profile revision, `durationSeconds`, `maximumConcurrency`, `communicationConcurrency`, `planningPercent`, `allocationWeight: 1`, `planningTurnMaximumSeconds: 180`, the selected proposal/decision IDs, the provider offer revision, capability/model daily caps, reservations, and remaining supply read-back. Initial debugging runs use `durationSeconds: 3600`, `planningPercent: 33.333333333333336` (`100/3`: exactly 1,200 seconds), `maximumConcurrency: 5`, and `communicationConcurrency: 5`. Configure these concurrency values through the version-checked workday policy, and verify host, connection, adapter and lane ceilings before admission. Acceptance requires measured overlap of at least five actual executions, not merely configured slots; preserve graph dependencies. This explicit workday override does not change the team's ordinary 20% planning default. Do not automatically extend the hour, truncate viable assignments, or waive acceptance criteria: report a measured shortfall or failed boundary. Version-check any required policy update and freeze the resulting revision before starting. Expand all class and project mappings into the manifest; do not infer missing mappings from this Markdown table at execution time. Use the team's canonical `default` policy (`--profile default`). Freeze its revision and the resolved workday snapshot. Update team defaults through version-checked `workdays profiles update default --input `; explicit workday allocation overrides do not change that policy or existing assignments. Repository allocation profiles, tiers, borrowing, and fixed assignment budgets are not campaign inputs. diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 3926b1b7..1e95a98e 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. GPT-6 Luna executes in local development mode; the concrete-path and canonical Reviewer-instruction repairs are activated. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. Agent #185 adds bounded parallel workers, exact dispatch, refill, adapter/lane ceilings and retained admission-failure leases; 285 tests and 44 component scene checks pass. Five-way live execution remains unproven. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Automatic released-analysis cleanup is activated, but interrupted-unreleased recovery and bounded retention remain unproven (Deployment #779). The corrected Releaser instruction has coded regression coverage but still requires successful live revision evidence. +- No authentication blocker is established. Development configuration/enrollment parity is under repair (Deployment #782); a separate managed-backup defect rejects registered TreeDX development writers (#784). Automatic simulation recovery is activated, but retention plateau remains unproven (#779). ### Next acceptance milestone -- Verify the activated handler through a bounded revision and prove automatic workspace recovery/retention without operator cleanup; then support the fresh SDK golden described in `agent-assignments.md`. +- Verify five overlapping real executions under the one-hour SDK campaign, including unchanged daily accounting and clean teardown, through package-owned scenes; graph and correction/re-review acceptance remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 74ea34dd..cab0503d 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- SDK W reached five approved pairs but failed bounded release correction; SDK X stopped at the coded planning boundary and passed terminal teardown/settlement checks. Neither is a golden pass; detailed evidence belongs in Platform #520. +- No SDK golden pass. The one-hour SDK AC campaign stopped at its twenty-minute planning boundary with first-cycle contributions but incomplete estimation/collaboration; its coded terminal settlement/teardown gate passed. Detailed evidence belongs in Platform #520; provider concurrency repair is owned by `agent-architecture.md`. ### Current active blocker -- No current host or authentication blocker is established. X's short planning window did not fit collaboration and estimates; repeated full-role planning and successful bounded correction/re-review remain unproven. Use the automated campaign feasibility gate, not another blind rerun. +- No graph authority or authentication blocker is established. Repeated full-role planning, genuine estimates, and successful bounded correction/re-review in the fixed hour remain unproven; confirm the provider repair through coded preflight before a fresh campaign. ### Next acceptance milestone From 0715684ad93c07984c2fc5d7c242a81dff1cb74d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 16:34:46 -0400 Subject: [PATCH 420/501] docs: retain exact concurrency and cancellation acceptance frontier --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 1e95a98e..463587b9 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,11 +546,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- AgentKernel, capability accounting, handlers, workspace enforcement and Kata isolation have focused tests. Agent #185 adds bounded parallel workers, exact dispatch, refill, adapter/lane ceilings and retained admission-failure leases; 285 tests and 44 component scene checks pass. Five-way live execution remains unproven. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- Agent #185 provides bounded parallel workers and verified five-slot supply. Deployment #788 removes subscription execution serialization while preserving atomic credential custody; 1090 tests and 25 component scene checks pass, and the broker is active in development mode. Five-way live execution remains unproven. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No authentication blocker is established. Development configuration/enrollment parity is under repair (Deployment #782); a separate managed-backup defect rejects registered TreeDX development writers (#784). Automatic simulation recovery is activated, but retention plateau remains unproven (#779). +- Configuration/enrollment parity is repaired. A cancelled attempt can lose durable teardown evidence when terminal-state updates race (API #410). Separate remaining gates are managed TreeDX development-writer backup (Deployment #784) and retention plateau (#779); neither permits weakening golden acceptance. ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index cab0503d..90bc78e2 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. The one-hour SDK AC campaign stopped at its twenty-minute planning boundary with first-cycle contributions but incomplete estimation/collaboration; its coded terminal settlement/teardown gate passed. Detailed evidence belongs in Platform #520; provider concurrency repair is owned by `agent-architecture.md`. +- No SDK golden pass. The fresh automated campaign stopped on a concrete execution failure before decision/acting; unchanged authority and failed evidence are retained. Detailed evidence belongs in Platform #520; provider execution and cancellation teardown gaps are owned by `agent-architecture.md`. ### Current active blocker -- No graph authority or authentication blocker is established. Repeated full-role planning, genuine estimates, and successful bounded correction/re-review in the fixed hour remain unproven; confirm the provider repair through coded preflight before a fresh campaign. +- No graph authority or authentication blocker is established. Repeated full-role planning, genuine estimates, and successful bounded correction/re-review in the fixed hour remain unproven; use the repaired provider in the next fresh, five-concurrency automated campaign. ### Next acceptance milestone From 911d1dc7fbe90402ce0d0c6c79748215f966e89b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 18:17:32 -0400 Subject: [PATCH 421/501] docs: record SDK AF frontier and production policy parity gap --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 463587b9..e995f489 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Agent #185 provides bounded parallel workers and verified five-slot supply. Deployment #788 removes subscription execution serialization while preserving atomic credential custody; 1090 tests and 25 component scene checks pass, and the broker is active in development mode. Five-way live execution remains unproven. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- Five overlapping real executions, early completion, measured usage and clock compliance are proven in SDK AF. Agent #189 removes all development-only manifest policy rewrites; 286 tests and 47 component scene checks pass. Normal host configuration generation 38 explicitly preserves resources/accounting identity; activation/read-back remain pending. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Configuration/enrollment parity is repaired. A cancelled attempt can lose durable teardown evidence when terminal-state updates race (API #410). Separate remaining gates are managed TreeDX development-writer backup (Deployment #784) and retention plateau (#779); neither permits weakening golden acceptance. +- Activate and verify production-policy parity before rerunning: an injected 360-second review floor stranded AF re-review. Cancelled Reporter teardown remains unproven (API #410); managed backup (Deployment #784) and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Verify five overlapping real executions under the one-hour SDK campaign, including unchanged daily accounting and clean teardown, through package-owned scenes; graph and correction/re-review acceptance remain owned by `agent-assignments.md`. +- Verify identical production/simulation execution policy and unchanged explicit caps/resources, then run one fresh one-hour SDK campaign with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 90bc78e2..2616ed41 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. The fresh automated campaign stopped on a concrete execution failure before decision/acting; unchanged authority and failed evidence are retained. Detailed evidence belongs in Platform #520; provider execution and cancellation teardown gaps are owned by `agent-architecture.md`. +- No SDK golden pass. SDK AF proved two complete planning cycles, seven genuine estimates, eight-role discussion, exact decision and approved Researcher/Engineer correction/re-review cycles; Writer revision completed, but its re-review, release and final closeout did not. Detailed evidence: Platform #520; provider policy and teardown gaps belong to `agent-architecture.md`. ### Current active blocker -- No graph authority or authentication blocker is established. Repeated full-role planning, genuine estimates, and successful bounded correction/re-review in the fixed hour remain unproven; use the repaired provider in the next fresh, five-concurrency automated campaign. +- No graph-authority or authentication blocker is established. Resume only after the production-policy parity repair in `agent-architecture.md`; do not reuse AF estimates, review allowances or failed-run authority. ### Next acceptance milestone From e951e983646c181a1a7488c13a1ff19c3439422a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 19:02:33 -0400 Subject: [PATCH 422/501] Record verified SDK provider policy parity --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index e995f489..42df1890 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five overlapping real executions, early completion, measured usage and clock compliance are proven in SDK AF. Agent #189 removes all development-only manifest policy rewrites; 286 tests and 47 component scene checks pass. Normal host configuration generation 38 explicitly preserves resources/accounting identity; activation/read-back remain pending. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- Five overlapping real executions, early completion, measured usage and clock compliance are proven in SDK AF. Agent #189 removes development-only manifest policy rewrites; 286 tests and 47 component scene checks pass. Dev2 generation 38 now runs with explicit resources, separate Luna/low accounting caps, five workers and no assignment minimum; API and provider roles are healthy after Deployment #790/#791. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Activate and verify production-policy parity before rerunning: an injected 360-second review floor stranded AF re-review. Cancelled Reporter teardown remains unproven (API #410); managed backup (Deployment #784) and retention plateau (#779) remain separate gates. +- No active provider-policy blocker remains. Cancelled Reporter teardown remains unproven (API #410); managed backup (Deployment #784) and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Verify identical production/simulation execution policy and unchanged explicit caps/resources, then run one fresh one-hour SDK campaign with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. +- Run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2616ed41..083d7379 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No graph-authority or authentication blocker is established. Resume only after the production-policy parity repair in `agent-architecture.md`; do not reuse AF estimates, review allowances or failed-run authority. +- No graph-authority or authentication blocker is established. Production-policy parity now reads back on dev2; start a fresh simulation, without reusing AF estimates, review allowances or failed-run authority. ### Next acceptance milestone From 1d53deb7dc1f06745097842191dee776b1d3bdc4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 19:31:37 -0400 Subject: [PATCH 423/501] Record SDK model-auth acceptance blocker --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 42df1890..cc3d7124 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five overlapping real executions, early completion, measured usage and clock compliance are proven in SDK AF. Agent #189 removes development-only manifest policy rewrites; 286 tests and 47 component scene checks pass. Dev2 generation 38 now runs with explicit resources, separate Luna/low accounting caps, five workers and no assignment minimum; API and provider roles are healthy after Deployment #790/#791. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- SDK AF proved five overlapping real executions, early completion, measured usage and clock compliance. Agent #189 removed development-only policy rewrites. After host recovery, Agent #191 and Deployment #793 repaired guest-image ordering/readiness; SDK AH reached the guest but failed model authorization before planning. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-policy blocker remains. Cancelled Reporter teardown remains unproven (API #410); managed backup (Deployment #784) and retention plateau (#779) remain separate gates. +- The ChatGPT-account Codex credential now receives HTTP 400 for `gpt-6-luna`; choose an authorized API-token route for that model or a subscription-supported provider model before another golden run. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. +- Verify the selected model/authentication pair through a package-owned preflight, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 083d7379..c810e3a4 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No graph-authority or authentication blocker is established. Production-policy parity now reads back on dev2; start a fresh simulation, without reusing AF estimates, review allowances or failed-run authority. +- No graph-authority blocker is established; SDK AG and AH ended before usable planning evidence because of the provider execution blockers recorded in `agent-architecture.md`. Do not reuse failed-run estimates, review allowances or authority. ### Next acceptance milestone From 6d533a229873c70385658a36349d9edb15f44a08 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 19:52:12 -0400 Subject: [PATCH 424/501] Record restored Codex subscription execution --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index cc3d7124..f49cfa99 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK AF proved five overlapping real executions, early completion, measured usage and clock compliance. Agent #189 removed development-only policy rewrites. After host recovery, Agent #191 and Deployment #793 repaired guest-image ordering/readiness; SDK AH reached the guest but failed model authorization before planning. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- SDK AF proved five overlapping real executions, early completion, measured usage and clock compliance. Agent #189 removed development-only policy rewrites; Agent #191 and Deployment #793 repaired guest-image ordering/readiness. Agent #193 upgraded sandbox Codex to 0.157.1; a subsequent local assignment completed with `gpt-6-luna:low` on the ChatGPT subscription. Agent #194 adds a current-stable preflight and guest binary parity gate. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- The ChatGPT-account Codex credential now receives HTTP 400 for `gpt-6-luna`; choose an authorized API-token route for that model or a subscription-supported provider model before another golden run. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. +- No active model-auth blocker remains. The fresh SDK golden campaign still has not passed; cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Verify the selected model/authentication pair through a package-owned preflight, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. +- Merge checked Agent #194, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index c810e3a4..665cc5ba 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,7 +440,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No graph-authority blocker is established; SDK AG and AH ended before usable planning evidence because of the provider execution blockers recorded in `agent-architecture.md`. Do not reuse failed-run estimates, review allowances or authority. +- No graph-authority blocker is established. SDK AG and AH ended before usable planning evidence; the provider model-auth fault has since been repaired as recorded in `agent-architecture.md`. Do not reuse failed-run estimates, review allowances or authority. ### Next acceptance milestone From d434f03def07687e68cd37fd909e4d2739a34c02 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 20:31:03 -0400 Subject: [PATCH 425/501] Record SDK proposal review plan boundary --- docs/agent-assignments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 665cc5ba..7cd94715 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. SDK AF proved two complete planning cycles, seven genuine estimates, eight-role discussion, exact decision and approved Researcher/Engineer correction/re-review cycles; Writer revision completed, but its re-review, release and final closeout did not. Detailed evidence: Platform #520; provider policy and teardown gaps belong to `agent-architecture.md`. +- No SDK golden pass. SDK AI completed two eight-role planning cycles, seven genuine estimates, eight chat replies, and an independent proposal review; that review requested changes, so no decision or acting graph followed. Earlier SDK AF proved several Actor/Reviewer cycles but not final closeout. Detailed evidence: Platform #520; provider execution belongs to `agent-architecture.md`. ### Current active blocker -- No graph-authority blocker is established. SDK AG and AH ended before usable planning evidence; the provider model-auth fault has since been repaired as recorded in `agent-architecture.md`. Do not reuse failed-run estimates, review allowances or authority. +- `PLAN_REVIEW_REQUIRED`: the frozen SDK acceptance text ambiguously assigns digest testing and legacy-contract removal across SDK/API boundaries. The independent Reviewer opened a blocking concern on the exact proposal revision. Clarification must preserve the fixed objective and six work items; do not fabricate approval or reuse failed-run estimates, review allowances or authority. ### Next acceptance milestone -- Execute one fresh frozen SDK campaign through package-owned scenes, including genuine estimates, decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, SDK product gates and unchanged upstream inventory; do not reuse failed-run authority. +- Resolve the canonical wording with the user, then refreeze and run one fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. ## Completion From 4cadaa73f554ade764e69f6cd8c76ab2a137d6be Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 20:38:49 -0400 Subject: [PATCH 426/501] Clarify SDK golden acceptance authority and review boundaries --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 2110d008..876b6780 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -309,7 +309,7 @@ The source issue is evidence for choosing the work. The golden proposal below is Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs; Architect publishes the SDK Architecture Knowledge page; Tester commits failing-on-base tests; Engineer commits the implementation passing those tests; Technical Writer commits and verifies examples; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. -Required acceptance: empty and duplicate IDs fail; omitted selection retains planning-only intent without a compatibility path; normalized order and digest are deterministic; generated descriptors expose the field once; no legacy execution-plan/capacity-plan input survives. +Required acceptance for the final integrated SDK candidate: empty and duplicate decision IDs fail; selected IDs normalize in deterministic order and serialize deterministically; omission leaves the separate `planningOnly` setting unchanged (including when it is true) without a compatibility path; generated descriptors expose the selection field once. SDK proves normalized request serialization, not intent or preflight digests, which the API computes. Retire caller-authored legacy workday execution-plan and capacity-plan selection inputs; preserve the proposal's governed `executionPlan` and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. ### 2. API — content-derived acting promotion From 8f2090f016ee06836da2fac1a2df7ccc83942a98 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 20:45:07 -0400 Subject: [PATCH 427/501] Record clarified SDK golden frontier --- docs/agent-assignments.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 7cd94715..e3b48047 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- `PLAN_REVIEW_REQUIRED`: the frozen SDK acceptance text ambiguously assigns digest testing and legacy-contract removal across SDK/API boundaries. The independent Reviewer opened a blocking concern on the exact proposal revision. Clarification must preserve the fixed objective and six work items; do not fabricate approval or reuse failed-run estimates, review allowances or authority. +- No active blocker. The clarified acceptance contract and package-owned preflight are merged on staging; a fresh, estimate-free SDK simulation is running under the automated golden scene. The prior review-blocked workday remains failed evidence, not accepted authority. ### Next acceptance milestone -- Resolve the canonical wording with the user, then refreeze and run one fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. +- Verify the fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. Do not mark the golden gate complete from preflight or planning alone. ## Completion From 278a8137cb00e3a77217f38511e027b80668bc1e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 21:14:12 -0400 Subject: [PATCH 428/501] Record SDK AK execution frontier without changing checklist --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f49cfa99..102f6aad 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK AF proved five overlapping real executions, early completion, measured usage and clock compliance. Agent #189 removed development-only policy rewrites; Agent #191 and Deployment #793 repaired guest-image ordering/readiness. Agent #193 upgraded sandbox Codex to 0.157.1; a subsequent local assignment completed with `gpt-6-luna:low` on the ChatGPT subscription. Agent #194 adds a current-stable preflight and guest binary parity gate. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- SDK AK admitted five overlapping Kata assignments with the same production provider policy in simulation. Agent #200 and Deployment #795 removed the premature broker-create timeout; the first remaining failure was a Releaser discussion turn exhausting its 90-second active allocation after repeated source inspection. Codex 0.157.1 runs `gpt-6-luna:low` on the ChatGPT subscription. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active model-auth blocker remains. The fresh SDK golden campaign still has not passed; cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. +- Agent #201 is repairing short-turn chat instructions without changing the model, workday policy, or assignment duration. SDK AK was stopped by the automated scene; no golden pass. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Merge checked Agent #194, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. +- Merge checked Agent #202, activate it in development mode, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index e3b48047..ac25c749 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -440,11 +440,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No active blocker. The clarified acceptance contract and package-owned preflight are merged on staging; a fresh, estimate-free SDK simulation is running under the automated golden scene. The prior review-blocked workday remains failed evidence, not accepted authority. +- The acceptance wording and canonical proposal preflight are merged on staging. SDK AK was stopped before proposal governance by a timed-out discussion turn; the execution-path repair belongs to `agent-architecture.md`. The prior review-blocked workday remains failed evidence, not accepted authority. ### Next acceptance milestone -- Verify the fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. Do not mark the golden gate complete from preflight or planning alone. +- After the execution-path repair, verify a fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. Do not mark the golden gate complete from preflight or planning alone. ## Completion From ab4ac7a220faa92815732909277bc6ab4fdfe0f8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 27 Sep 2026 22:48:27 -0400 Subject: [PATCH 429/501] Specify decision-intent golden review boundaries --- docs/agent-acceptance.md | 16 ++++++++-------- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 876b6780..db1fdd0c 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -295,21 +295,21 @@ The source issue is evidence for choosing the work. The golden proposal below is - `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The API incorporates the normalized selection in its intent and preflight digests; SDK does not compute those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Remove conflicting legacy workday-selection contracts without compatibility aliases. +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The normalized selection is serialized in the request sent to the API; only the API incorporates it in intent and preflight digests, and the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| -| Researcher | Trace every current SDK workday-selection, decision, graph, assignment, and legacy planning contract; return exact refs and a duplication/deletion note. | -| Architect | Extend the SDK Architecture book with the single authority boundary and exact portable shape; identify all retired competing contracts. | -| Tester | Add normalization, duplicate/empty rejection, stable normalized request serialization, omission, and schema/CLI-descriptor contract tests that fail on the frozen base. | -| Engineer | Implement the minimal strict TypeScript contract and delete superseded unions, aliases, and exported paths. | -| Technical Writer | Update SDK API/reference examples to show repeated decision selection and explicitly forbid caller-authored derived state. | +| Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | +| Architect | Extend the SDK Architecture book with the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | +| Tester | Commit focused tests for trimmed canonical decision IDs, duplicate and empty rejection, stable serialized intent sent to the API, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, and absence of SDK digest computation; at least one missing behavior must fail on the frozen base for the intended reason. | +| Engineer | Implement the strict TypeScript normalization and validation so repeated decision IDs serialize once in deterministic order, empty and duplicate IDs fail, and omission leaves `planningOnly` unchanged; remove only an inventoried conflicting caller-authored selection export if one exists, never the separate planning or allocation controls. | +| Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs; Architect publishes the SDK Architecture Knowledge page; Tester commits failing-on-base tests; Engineer commits the implementation passing those tests; Technical Writer commits and verifies examples; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus exact serialized-request, omission, generated-descriptor, and no-SDK-digest assertions; Engineer commits the implementation passing those tests and removes only a proven conflicting caller-authored selection export; Technical Writer commits and verifies examples with the same authority boundary; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. -Required acceptance for the final integrated SDK candidate: empty and duplicate decision IDs fail; selected IDs normalize in deterministic order and serialize deterministically; omission leaves the separate `planningOnly` setting unchanged (including when it is true) without a compatibility path; generated descriptors expose the selection field once. SDK proves normalized request serialization, not intent or preflight digests, which the API computes. Retire caller-authored legacy workday execution-plan and capacity-plan selection inputs; preserve the proposal's governed `executionPlan` and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. +Required acceptance for the final integrated SDK candidate: whitespace-trimmed selected IDs normalize in deterministic order in the serialized request sent to the API; empty and duplicate IDs fail; omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. ### 2. API — content-derived acting promotion diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 102f6aad..7006bc01 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- SDK AK admitted five overlapping Kata assignments with the same production provider policy in simulation. Agent #200 and Deployment #795 removed the premature broker-create timeout; the first remaining failure was a Releaser discussion turn exhausting its 90-second active allocation after repeated source inspection. Codex 0.157.1 runs `gpt-6-luna:low` on the ChatGPT subscription. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments run under the ordinary provider policy in simulation with Codex 0.157.1 and `gpt-6-luna:low` on the ChatGPT subscription. Deployment #797 keeps a denied TreeDX relay local to its request; Agent #204 prevents live ready claims from being mistaken for restart recovery; Agent #206 bounds estimating predecessor prompts while preserving exact references. SDK AO completed its estimate turns. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- Agent #201 is repairing short-turn chat instructions without changing the model, workday policy, or assignment duration. SDK AK was stopped by the automated scene; no golden pass. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. +- No active provider-execution blocker is established. The campaign scene still needs fail-closed stopping on any failed simulation read-back (Agent #207); the historical assignment projection repair belongs to API #413. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. ### Next acceptance milestone -- Merge checked Agent #202, activate it in development mode, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown; graph outcomes remain owned by `agent-assignments.md`. +- Integrate Agent #207 and API #413, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index ac25c749..a29ca6cb 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. SDK AI completed two eight-role planning cycles, seven genuine estimates, eight chat replies, and an independent proposal review; that review requested changes, so no decision or acting graph followed. Earlier SDK AF proved several Actor/Reviewer cycles but not final closeout. Detailed evidence: Platform #520; provider execution belongs to `agent-architecture.md`. +- No SDK golden pass. SDK AO completed eight-role discussion, two planning cycles, seven estimates, and an independent proposal review; that review requested changes before decision or acting. Earlier SDK AF proved partial Actor/Reviewer execution, not final closeout. Detailed evidence: Platform #520; provider execution belongs to `agent-architecture.md`. ### Current active blocker -- The acceptance wording and canonical proposal preflight are merged on staging. SDK AK was stopped before proposal governance by a timed-out discussion turn; the execution-path repair belongs to `agent-architecture.md`. The prior review-blocked workday remains failed evidence, not accepted authority. +- AO's Reviewer identified three real proposal-contract gaps: work-item criteria did not require normalized serialized intent, API-only digest ownership, or exact retirement scope. The canonical acceptance contract is being corrected without changing the objective or six work items; AO remains failed evidence, not accepted authority. ### Next acceptance milestone -- After the execution-path repair, verify a fresh SDK campaign through the existing package-owned scenes: genuine estimates, accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates and unchanged upstream inventory. Do not mark the golden gate complete from preflight or planning alone. +- After the corrected proposal and historical assignment read-back are integrated, verify one fresh SDK campaign through the existing package-owned scenes: accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory. Do not mark the golden gate complete from planning alone. ## Completion From 6717a7821dbf2f502b3beda2dc5ccbe54f760326 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 01:53:14 -0400 Subject: [PATCH 430/501] Specify canonical SDK decision ID order for golden review --- docs/agent-acceptance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index db1fdd0c..d790f160 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -295,21 +295,21 @@ The source issue is evidence for choosing the work. The golden proposal below is - `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. The normalized selection is serialized in the request sent to the API; only the API incorporates it in intent and preflight digests, and the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Trim each ID, reject empty IDs and duplicates after trimming, then serialize the IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Only the API incorporates the normalized selection in intent and preflight digests; the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| | Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | | Architect | Extend the SDK Architecture book with the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | -| Tester | Commit focused tests for trimmed canonical decision IDs, duplicate and empty rejection, stable serialized intent sent to the API, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, and absence of SDK digest computation; at least one missing behavior must fail on the frozen base for the intended reason. | +| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, and absence of SDK digest computation; at least one missing behavior must fail on the frozen base for the intended reason. | | Engineer | Implement the strict TypeScript normalization and validation so repeated decision IDs serialize once in deterministic order, empty and duplicate IDs fail, and omission leaves `planningOnly` unchanged; remove only an inventoried conflicting caller-authored selection export if one exists, never the separate planning or allocation controls. | | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus exact serialized-request, omission, generated-descriptor, and no-SDK-digest assertions; Engineer commits the implementation passing those tests and removes only a proven conflicting caller-authored selection export; Technical Writer commits and verifies examples with the same authority boundary; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. -Required acceptance for the final integrated SDK candidate: whitespace-trimmed selected IDs normalize in deterministic order in the serialized request sent to the API; empty and duplicate IDs fail; omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. +Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. ### 2. API — content-derived acting promotion From e4a9ff0c828baf644eb48bd6d6a434fb66e537a9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 02:49:14 -0400 Subject: [PATCH 431/501] Clarify SDK golden actor review criteria (#573) --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index d790f160..7c52a556 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -307,7 +307,7 @@ The source issue is evidence for choosing the work. The golden proposal below is | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus exact serialized-request, omission, generated-descriptor, and no-SDK-digest assertions; Engineer commits the implementation passing those tests and removes only a proven conflicting caller-authored selection export; Technical Writer commits and verifies examples with the same authority boundary; Releaser integrates and verifies the local candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor, and no-SDK-digest assertions; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. From dcab2b9bc486ee8252a4dbf98919af07b3bf8741 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 03:37:20 -0400 Subject: [PATCH 432/501] Pin SDK golden Architecture Book input (#574) --- docs/agent-acceptance.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7c52a556..3e6cfcfb 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -294,6 +294,7 @@ The source issue is evidence for choosing the work. The golden proposal below is - `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` +- Architecture Book: `sdk-core` at `books/sdk-core.md` in the pinned SDK library commit. The Architect's Knowledge write requires this exact Book reference in its work-item context; preflight must read back the Book before the proposal opens. - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Trim each ID, reject empty IDs and duplicates after trimming, then serialize the IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Only the API incorporates the normalized selection in intent and preflight digests; the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. From 02216f2676abd56d7fb08228d3ce022277d629f0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 05:15:18 -0400 Subject: [PATCH 433/501] Clarify SDK golden Tester rejection evidence --- docs/agent-acceptance.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 3e6cfcfb..f674a63f 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -303,12 +303,12 @@ The source issue is evidence for choosing the work. The golden proposal below is |---|---| | Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | | Architect | Extend the SDK Architecture book with the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | -| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, and absence of SDK digest computation; at least one missing behavior must fail on the frozen base for the intended reason. | +| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, absence of SDK digest computation, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | | Engineer | Implement the strict TypeScript normalization and validation so repeated decision IDs serialize once in deterministic order, empty and duplicate IDs fail, and omission leaves `planningOnly` unchanged; remove only an inventoried conflicting caller-authored selection export if one exists, never the separate planning or allocation controls. | | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor, and no-SDK-digest assertions; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. From d496d7fef3fa606773413162ada2b5a493190051 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 09:40:07 -0400 Subject: [PATCH 434/501] Clarify SDK golden Engineer runtime acceptance boundary --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index f674a63f..723cbe8b 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -304,7 +304,7 @@ The source issue is evidence for choosing the work. The golden proposal below is | Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | | Architect | Extend the SDK Architecture book with the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | | Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, absence of SDK digest computation, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | -| Engineer | Implement the strict TypeScript normalization and validation so repeated decision IDs serialize once in deterministic order, empty and duplicate IDs fail, and omission leaves `planningOnly` unchanged; remove only an inventoried conflicting caller-authored selection export if one exists, never the separate planning or allocation controls. | +| Engineer | Implement and test the public runtime intent validation and generated-operation serialization: trim every `decisionId`, reject empty and duplicate-after-trim IDs, sort in ascending case-sensitive Unicode code-point order, and produce identical request bytes for input permutations. Omitted IDs leave both `planningOnly` states unchanged. Reject caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at that runtime boundary even though TypeScript does not declare them; do not silently ignore them or remove the separate persisted `capacityPlanId` provenance. Keep `proposalIds`, `agentSelection`, and `allocation`, preserve the governed proposal `executionPlan`, and leave intent/preflight digest computation exclusively to the API. | | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | From 12c27efd0fd8cb065985de3f0c63409634d900ec Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 10:23:14 -0400 Subject: [PATCH 435/501] Pin SDK golden Architect to SDK Core book --- docs/agent-acceptance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 723cbe8b..c567f9a1 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -294,7 +294,7 @@ The source issue is evidence for choosing the work. The golden proposal below is - `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` -- Architecture Book: `sdk-core` at `books/sdk-core.md` in the pinned SDK library commit. The Architect's Knowledge write requires this exact Book reference in its work-item context; preflight must read back the Book before the proposal opens. +- Architecture Book: `sdk-core` at `books/sdk-core.md` in the pinned SDK library commit. Its published title is **SDK Core**. The Architect publishes architecture Knowledge associated with this exact Book reference; there is no separate “SDK Architecture” book. Preflight must read back the Book before the proposal opens. - Title: **Select accepted decisions in portable workday intent** - Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Trim each ID, reject empty IDs and duplicates after trimming, then serialize the IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Only the API incorporates the normalized selection in intent and preflight digests; the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. @@ -302,13 +302,13 @@ The source issue is evidence for choosing the work. The golden proposal below is | Work item | Project-specific objective and expected output | |---|---| | Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | -| Architect | Extend the SDK Architecture book with the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | +| Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) covering the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | | Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, absence of SDK digest computation, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | | Engineer | Implement and test the public runtime intent validation and generated-operation serialization: trim every `decisionId`, reject empty and duplicate-after-trim IDs, sort in ascending case-sensitive Unicode code-point order, and produce identical request bytes for input permutations. Omitted IDs leave both `planningOnly` states unchanged. Reject caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at that runtime boundary even though TypeScript does not declare them; do not silently ignore them or remove the separate persisted `capacityPlanId` provenance. Keep `proposalIds`, `agentSelection`, and `allocation`, preserve the governed proposal `executionPlan`, and leave intent/preflight digest computation exclusively to the API. | | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes the SDK Architecture Knowledge page naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. From 0b0a2d6901efa66262c9f61b36b8bcb5092304fe Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 12:35:59 -0400 Subject: [PATCH 436/501] Clarify executable SDK golden proposal contract --- docs/agent-acceptance.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index c567f9a1..9b54a84c 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -296,19 +296,19 @@ The source issue is evidence for choosing the work. The golden proposal below is - Source: `treeseed-ai/sdk#299` - Architecture Book: `sdk-core` at `books/sdk-core.md` in the pinned SDK library commit. Its published title is **SDK Core**. The Architect publishes architecture Knowledge associated with this exact Book reference; there is no separate “SDK Architecture” book. Preflight must read back the Book before the proposal opens. - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. Trim each ID, reject empty IDs and duplicates after trimming, then serialize the IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Only the API incorporates the normalized selection in intent and preflight digests; the SDK never computes those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` selection fields rather than creating compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance. +- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. At the public runtime intent validation and serialization boundary, trim each ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Omitted `decisionIds` preserve both `planningOnly: false` and `planningOnly: true`; an explicit empty selection is invalid. Verify repeated `--decision` on both generated `workdays plan` and `workdays schedules start` bindings. SDK tests must prove that normalized IDs appear in the serialized API request while the SDK computes neither `intentDigest` nor `preflightDigest`; only the API incorporates the selection in those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at that same public runtime boundary for direct typed-object callers as well as generated CLI callers; do not silently discard them or create compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance (including persisted `capacityPlanId`, which is not a caller intent field). - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| | Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | | Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) covering the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | -| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, generated descriptor exposure exactly once, absence of SDK digest computation, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | -| Engineer | Implement and test the public runtime intent validation and generated-operation serialization: trim every `decisionId`, reject empty and duplicate-after-trim IDs, sort in ascending case-sensitive Unicode code-point order, and produce identical request bytes for input permutations. Omitted IDs leave both `planningOnly` states unchanged. Reject caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at that runtime boundary even though TypeScript does not declare them; do not silently ignore them or remove the separate persisted `capacityPlanId` provenance. Keep `proposalIds`, `agentSelection`, and `allocation`, preserve the governed proposal `executionPlan`, and leave intent/preflight digest computation exclusively to the API. | +| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and explicit-empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, repeated `--decision` in both generated `workdays plan` and `workdays schedules start` bindings exactly once per descriptor, normalized selection in the serialized API request with neither SDK digest computed, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` for direct typed-object and CLI callers at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | +| Engineer | Implement and test the public runtime intent validation and generated-operation serialization: trim every `decisionId`, reject empty and duplicate-after-trim IDs (including an explicit empty array), sort in ascending case-sensitive Unicode code-point order, and produce identical request bytes for input permutations. Omitted IDs leave both `planningOnly` states unchanged. Apply the same normalization and strict rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` to direct typed-object and generated CLI callers; do not silently ignore them or remove the separate persisted `capacityPlanId` provenance. Keep `proposalIds`, `agentSelection`, and `allocation`, preserve the governed proposal `executionPlan`, and leave intent/preflight digest computation exclusively to the API. | | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the local candidate against the complete proposal-wide contract below, including deterministic request bytes, API-only digest ownership, four prohibited caller-authored selection fields, retained controls and governed execution plan, then reports the unpushed package candidate. The proposal-wide contract gates below apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the unpushed local candidate: normalized, case-sensitive Unicode code-point ordering yields identical serialized API request bytes for permuted IDs; omitted IDs preserve both planningOnly states; both generated command bindings accept repeated --decision; direct typed-object and CLI callers reject all four prohibited selection fields at runtime; the SDK computes neither intentDigest nor preflightDigest; proposalIds, agentSelection, allocation, governed proposal executionPlan, and API-derived capacity provenance remain intact. It then reports the unpushed package candidate. The integrated-candidate gates stated in this Releaser criterion apply to the final integrated candidate, not to an earlier Actor's isolated workspace. Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. From 56ebf0678b946905a6771fc2517f3cd40f8712ef Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 12:41:24 -0400 Subject: [PATCH 437/501] Record current SDK golden frontier without inflating checklists --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 7006bc01..ab699e4c 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments run under the ordinary provider policy in simulation with Codex 0.157.1 and `gpt-6-luna:low` on the ChatGPT subscription. Deployment #797 keeps a denied TreeDX relay local to its request; Agent #204 prevents live ready claims from being mistaken for restart recovery; Agent #206 bounds estimating predecessor prompts while preserving exact references. SDK AO completed its estimate turns. Graph/review outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The local provider, broker, API, and runner supported BN's complete planning phase. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-execution blocker is established. The campaign scene still needs fail-closed stopping on any failed simulation read-back (Agent #207); the historical assignment projection repair belongs to API #413. Cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate gates. +- No active provider-execution blocker is established. The SDK decision and acting path is blocked by the incomplete proposal criteria described in `agent-assignments.md`; cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate acceptance gates. ### Next acceptance milestone -- Integrate Agent #207 and API #413, then run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- After the proposal-criteria repair, run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index a29ca6cb..6cbe1a78 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. SDK AO completed eight-role discussion, two planning cycles, seven estimates, and an independent proposal review; that review requested changes before decision or acting. Earlier SDK AF proved partial Actor/Reviewer execution, not final closeout. Detailed evidence: Platform #520; provider execution belongs to `agent-architecture.md`. +- No SDK golden pass. BN completed eight-role discussion, two planning cycles, seven genuine estimates, and an independent proposal review, but the Reviewer raised a blocking concern before decision and acting. Earlier runs proved partial Actor/Reviewer execution, not final closeout. Detailed receipts are in Platform #520; provider execution belongs to `agent-architecture.md`. ### Current active blocker -- AO's Reviewer identified three real proposal-contract gaps: work-item criteria did not require normalized serialized intent, API-only digest ownership, or exact retirement scope. The canonical acceptance contract is being corrected without changing the objective or six work items; AO remains failed evidence, not accepted authority. +- BN exposed acceptance-builder truncation of role criteria at semicolons. The clarified canonical contract is merged; Agent #235/#236 must pass required checks and merge before a fresh proposal can be trusted. BN remains failed evidence, not accepted authority. ### Next acceptance milestone -- After the corrected proposal and historical assignment read-back are integrated, verify one fresh SDK campaign through the existing package-owned scenes: accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory. Do not mark the golden gate complete from planning alone. +- Refreeze one fresh SDK proposal after the complete role criteria pass read-back, then verify accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through the package-owned scenes. Planning alone is not a golden pass. ## Completion From 5257d7885a55c59bdd9d71ec92f841ae76fb5129 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 12:57:15 -0400 Subject: [PATCH 438/501] Require SDK tester to prove preserved authority boundaries --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 9b54a84c..aef46e8d 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -308,7 +308,7 @@ The source issue is evidence for choosing the work. The golden proposal below is | Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, generated-descriptor and no-SDK-digest assertions, and negative intent validation/serialization assertions for all four caller-supplied prohibited fields (rejected, not silently ignored or accepted as aliases), without treating persisted `capacityPlanId` provenance as a caller intent field; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the unpushed local candidate: normalized, case-sensitive Unicode code-point ordering yields identical serialized API request bytes for permuted IDs; omitted IDs preserve both planningOnly states; both generated command bindings accept repeated --decision; direct typed-object and CLI callers reject all four prohibited selection fields at runtime; the SDK computes neither intentDigest nor preflightDigest; proposalIds, agentSelection, allocation, governed proposal executionPlan, and API-derived capacity provenance remain intact. It then reports the unpushed package candidate. The integrated-candidate gates stated in this Releaser criterion apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, repeated `--decision` parsing and exactly one binding in each generated `workdays plan` and `workdays schedules start` descriptor, and no-SDK-digest assertions. Negative intent validation/serialization tests reject all four caller-supplied prohibited fields for direct typed-object and CLI callers (not silently ignored or accepted as aliases), while positive tests preserve the governed proposal `executionPlan` and API-derived capacity provenance, including persisted `capacityPlanId` as distinct from caller intent; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the unpushed local candidate: normalized, case-sensitive Unicode code-point ordering yields identical serialized API request bytes for permuted IDs; omitted IDs preserve both planningOnly states; both generated command bindings accept repeated --decision; direct typed-object and CLI callers reject all four prohibited selection fields at runtime; the SDK computes neither intentDigest nor preflightDigest; proposalIds, agentSelection, allocation, governed proposal executionPlan, and API-derived capacity provenance remain intact. It then reports the unpushed package candidate. The integrated-candidate gates stated in this Releaser criterion apply to the final integrated candidate, not to an earlier Actor's isolated workspace. Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. From c3531fc358848b091c8b2a95b9720421a76ca7ac Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 14:56:41 -0400 Subject: [PATCH 439/501] Record SDK BQ golden frontier and published-profile gate --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index ab699e4c..b3859f76 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The local provider, broker, API, and runner supported BN's complete planning phase. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. BQ exposed a Releaser chat turn that spent its 180-second active allowance on unnecessary source research; automated stop, settlement, and teardown passed. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-execution blocker is established. The SDK decision and acting path is blocked by the incomplete proposal criteria described in `agent-assignments.md`; cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate acceptance gates. +- The SDK library chat profiles still require source research for coordination-only messages at the published ref. A corrected eight-role review exists, but remote publication is blocked by binding drift; active definitions presently disagree with published content. API #432 tracks that authority defect. No separate Kata/provider health failure is established. ### Next acceptance milestone -- After the proposal-criteria repair, run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- Publish and read back the corrected profiles, enforce the package-owned published-profile preflight, then run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6cbe1a78..db244eaa 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. BN completed eight-role discussion, two planning cycles, seven genuine estimates, and an independent proposal review, but the Reviewer raised a blocking concern before decision and acting. Earlier runs proved partial Actor/Reviewer execution, not final closeout. Detailed receipts are in Platform #520; provider execution belongs to `agent-architecture.md`. +- No SDK golden pass. Prior runs proved complete planning and partial Actor/Reviewer work, but not the full decision-to-settlement path. BQ stopped after a failed Releaser discussion turn, before decision; its terminal settlement and teardown guarantee passed. Detailed receipts are in Platform #520. ### Current active blocker -- BN exposed acceptance-builder truncation of role criteria at semicolons. The clarified canonical contract is merged; Agent #235/#236 must pass required checks and merge before a fresh proposal can be trusted. BN remains failed evidence, not accepted authority. +- The clarified proposal contract is merged. SDK library binding drift currently prevents governed publication of the corrected agent profiles; see `agent-architecture.md` for the execution-side prompt defect. API #433 and Agent #201 track the repairs. ### Next acceptance milestone -- Refreeze one fresh SDK proposal after the complete role criteria pass read-back, then verify accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through the package-owned scenes. Planning alone is not a golden pass. +- After exact published SDK library and active-definition read-back agree, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion From 396a1c31bfd8a7103ea764273306842eebd25561 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 14:58:20 -0400 Subject: [PATCH 440/501] Record SDK BQ golden frontier and published-profile gate (#581) --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index ab699e4c..b3859f76 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The local provider, broker, API, and runner supported BN's complete planning phase. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. BQ exposed a Releaser chat turn that spent its 180-second active allowance on unnecessary source research; automated stop, settlement, and teardown passed. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-execution blocker is established. The SDK decision and acting path is blocked by the incomplete proposal criteria described in `agent-assignments.md`; cancelled Reporter teardown (API #410), managed backup (#784), and retention plateau (#779) remain separate acceptance gates. +- The SDK library chat profiles still require source research for coordination-only messages at the published ref. A corrected eight-role review exists, but remote publication is blocked by binding drift; active definitions presently disagree with published content. API #432 tracks that authority defect. No separate Kata/provider health failure is established. ### Next acceptance milestone -- After the proposal-criteria repair, run one fresh one-hour SDK simulation with five slots through the packaged guarantees, including final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- Publish and read back the corrected profiles, enforce the package-owned published-profile preflight, then run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6cbe1a78..db244eaa 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. BN completed eight-role discussion, two planning cycles, seven genuine estimates, and an independent proposal review, but the Reviewer raised a blocking concern before decision and acting. Earlier runs proved partial Actor/Reviewer execution, not final closeout. Detailed receipts are in Platform #520; provider execution belongs to `agent-architecture.md`. +- No SDK golden pass. Prior runs proved complete planning and partial Actor/Reviewer work, but not the full decision-to-settlement path. BQ stopped after a failed Releaser discussion turn, before decision; its terminal settlement and teardown guarantee passed. Detailed receipts are in Platform #520. ### Current active blocker -- BN exposed acceptance-builder truncation of role criteria at semicolons. The clarified canonical contract is merged; Agent #235/#236 must pass required checks and merge before a fresh proposal can be trusted. BN remains failed evidence, not accepted authority. +- The clarified proposal contract is merged. SDK library binding drift currently prevents governed publication of the corrected agent profiles; see `agent-architecture.md` for the execution-side prompt defect. API #433 and Agent #201 track the repairs. ### Next acceptance milestone -- Refreeze one fresh SDK proposal after the complete role criteria pass read-back, then verify accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through the package-owned scenes. Planning alone is not a golden pass. +- After exact published SDK library and active-definition read-back agree, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion From 4c6f632a557bb9df2785efd5a39cdb9e49d99fb1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 15:57:39 -0400 Subject: [PATCH 441/501] Record SDK golden BR frontier without stale blockers --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index b3859f76..9fe8d31a 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. BQ exposed a Releaser chat turn that spent its 180-second active allowance on unnecessary source research; automated stop, settlement, and teardown passed. Graph and review outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. All eight corrected SDK chat profiles were governed, published, and read back at one exact library ref. BR exposed an estimating closeout that exhausted its unchanged 180-second active deadline; Agent #238 / PR #239 added a bounded production closeout guard and coded scene regression. Graph outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- The SDK library chat profiles still require source research for coordination-only messages at the published ref. A corrected eight-role review exists, but remote publication is blocked by binding drift; active definitions presently disagree with published content. API #432 tracks that authority defect. No separate Kata/provider health failure is established. +- The estimating closeout repair passed component and Actions checks but still needs local guest activation and a real SDK golden read-back. API #432 separately tracks premature agent-definition activation before publication; current published and active SDK revisions agree. ### Next acceptance milestone -- Publish and read back the corrected profiles, enforce the package-owned published-profile preflight, then run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- Activate the checked guest repair, then run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index db244eaa..54ec4573 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. Prior runs proved complete planning and partial Actor/Reviewer work, but not the full decision-to-settlement path. BQ stopped after a failed Releaser discussion turn, before decision; its terminal settlement and teardown guarantee passed. Detailed receipts are in Platform #520. +- No SDK golden pass. BR stopped in planning after a Tester estimate timed out; its automated cancellation, lease teardown, and exactly-once settlement guarantee passed. Earlier runs proved partial Actor/Reviewer work, not the complete decision-to-settlement path. Detailed receipts are in Platform #520. ### Current active blocker -- The clarified proposal contract is merged. SDK library binding drift currently prevents governed publication of the corrected agent profiles; see `agent-architecture.md` for the execution-side prompt defect. API #433 and Agent #201 track the repairs. +- The corrected eight-role SDK profiles are published and match the active definitions. The current frontier is the fresh SDK golden run after the estimating closeout repair is activated; see `agent-architecture.md` for that execution boundary. ### Next acceptance milestone -- After exact published SDK library and active-definition read-back agree, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- Refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion From 6b7096855f43cfbdc0ba63d03495e2a1b5864362 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 16:47:18 -0400 Subject: [PATCH 442/501] Clarify SDK golden work at SDK request boundary --- docs/agent-acceptance.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index aef46e8d..407c8716 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -292,25 +292,25 @@ The source issue is evidence for choosing the work. The golden proposal below is ### 1. SDK — decision-governed workday intent -- `id`: `golden-sdk-decision-governed-workday-intent-v4-golden-20260926-v` (fresh estimate-free draft preserving the six fixed work items, exact Book commit `65106c908bca127ea45d11b3f6b54905878d191c` and Git base `1186bff3b400fe442642013b2de93e7f0d4939df`). Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. The Tester checks stable normalized request serialization rather than an SDK-owned digest. CLI transport implementation is separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. +- `id`: a fresh unique SDK golden proposal ID for each estimate-free campaign, preserving the six fixed work items and exact SDK Book/library and Git commits captured in that campaign's freeze. Prior terminal workdays provide defect evidence only; their estimates and assignment results are not reused. CLI parser/executor implementation and API digest/persistence behavior are separate from this SDK-only workday. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. Freeze the current policy and runtime before starting; Platform #520 owns detailed run evidence. - Source: `treeseed-ai/sdk#299` - Architecture Book: `sdk-core` at `books/sdk-core.md` in the pinned SDK library commit. Its published title is **SDK Core**. The Architect publishes architecture Knowledge associated with this exact Book reference; there is no separate “SDK Architecture” book. Preflight must read back the Book before the proposal opens. - Title: **Select accepted decisions in portable workday intent** -- Request: Add normalized repeated accepted-decision identities to the public SDK workday intent and generated operation contract. At the public runtime intent validation and serialization boundary, trim each ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order so differing input orders produce identical request bytes. Omitted `decisionIds` preserve both `planningOnly: false` and `planningOnly: true`; an explicit empty selection is invalid. Verify repeated `--decision` on both generated `workdays plan` and `workdays schedules start` bindings. SDK tests must prove that normalized IDs appear in the serialized API request while the SDK computes neither `intentDigest` nor `preflightDigest`; only the API incorporates the selection in those digests. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` at that same public runtime boundary for direct typed-object callers as well as generated CLI callers; do not silently discard them or create compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion; preserve the distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls, the proposal's governed `executionPlan`, and API-derived capacity provenance (including persisted `capacityPlanId`, which is not a caller intent field). +- Request: Add normalized repeated accepted-decision identities to the public SDK `WorkdayIntent` and generated operation contract. Implement one SDK normalization/strict-validation function in `src/operator-contracts/workday-lifecycle.ts` and call it from the SDK `ControlPlaneClient.invoke` request path for `workdays.plan` and the nested intent of `workdays.schedules.create`, before body schema parsing and JSON serialization. Trim each ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order so input permutations produce identical outbound request bytes. Omitted `decisionIds` preserve both `planningOnly: false` and `planningOnly: true`; an explicit empty selection is invalid. Verify one repeatable/CSV `--decision` binding in each generated `workdays plan` and `workdays schedules start` descriptor; CLI parser/executor behavior belongs to the separate CLI proposal. SDK mock-transport tests prove the normalized outbound API request bytes and prove the SDK computes neither `intentDigest` nor `preflightDigest`; API incorporation of selection into those digests belongs to the separate API proposal. Decision IDs select authority but never contain or grant derived graph, assignment, source, role, estimate, or capacity state. Reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` on both direct SDK intent calls and the generated-operation request path before permissive parsing can discard unknown fields; do not add compatibility aliases. These fields are absent from the current SDK intent, so do not invent a deletion. Preserve distinct `planningOnly`, `proposalIds`, `agentSelection`, and `allocation` controls and their SDK contracts; the proposal's governed `executionPlan` and API-derived capacity provenance (including persisted `capacityPlanId`) remain separate authorities, not SDK request fields or SDK persistence proofs. - Summary: Prove the SDK can express high-level decision-governed execution while keeping all derived execution state API-owned. | Work item | Project-specific objective and expected output | |---|---| -| Researcher | Trace current `WorkdayIntent`, validation, normalization, generated `--decision` binding, and preflight receipt declarations with exact source refs; inventory the four prohibited caller-authored selection fields and record their current absence or exact conflicting export. | -| Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) covering the portable normalized `decisionIds` shape, SDK serialization versus API digest ownership, and an exact inventory of prohibited caller-authored selection fields; retain distinct planning and allocation controls. | -| Tester | Commit focused tests for trimmed decision IDs, duplicate-after-trimming and explicit-empty rejection, ascending case-sensitive Unicode code-point order with identical serialized request bytes for differing input orders, omitted IDs preserving both `planningOnly` states, repeated `--decision` in both generated `workdays plan` and `workdays schedules start` bindings exactly once per descriptor, normalized selection in the serialized API request with neither SDK digest computed, and rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` for direct typed-object and CLI callers at the intent validation/serialization boundary (not silent ignoring or compatibility aliases). The distinct persisted `capacityPlanId` provenance remains outside this intent-field test. At least one missing behavior must fail on the frozen base for the intended reason. | -| Engineer | Implement and test the public runtime intent validation and generated-operation serialization: trim every `decisionId`, reject empty and duplicate-after-trim IDs (including an explicit empty array), sort in ascending case-sensitive Unicode code-point order, and produce identical request bytes for input permutations. Omitted IDs leave both `planningOnly` states unchanged. Apply the same normalization and strict rejection of caller-supplied `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` to direct typed-object and generated CLI callers; do not silently ignore them or remove the separate persisted `capacityPlanId` provenance. Keep `proposalIds`, `agentSelection`, and `allocation`, preserve the governed proposal `executionPlan`, and leave intent/preflight digest computation exclusively to the API. | -| Technical Writer | Update SDK API/reference examples for repeated `--decision` selection, normalized serialized intent, omission with `planningOnly`, API-only digest ownership, and the four prohibited caller-authored selection fields. | +| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. Inventory the four prohibited caller-authored fields, recording their absence or an actual conflicting export. | +| Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`). Define one normalization/strict-validation function at the SDK request boundary, generated descriptor bindings, SDK serialization versus API digest/persistence ownership, and all four prohibited fields. Preserve separate `planningOnly`, `proposalIds`, `agentSelection`, `allocation`, governed proposal `executionPlan`, and API-derived capacity provenance. | +| Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Check direct SDK calls and generated-operation requests reject `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive schema parsing. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | +| Engineer | Implement the single SDK `WorkdayIntent` normalization/strict-validation function and invoke it from `ControlPlaneClient.invoke` for `workdays.plan` and nested `workdays.schedules.create` before body parsing and JSON serialization. Trim, reject empty/duplicate IDs and forbidden caller-authored fields, sort case-sensitive Unicode code points, and preserve omitted-ID planning behavior and the separate `proposalIds`, `agentSelection`, and `allocation` controls. Generate each command descriptor with one repeated/CSV `--decision` binding. Do not compute SDK digests or alter governed `executionPlan` or API-derived capacity provenance. | +| Technical Writer | Update SDK API/reference examples for descriptor-level repeated `--decision` selection, normalized outbound intent, omission with both `planningOnly` states, API-only digest/persistence ownership, and the four prohibited caller-authored fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact source refs and an inventory naming `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as absent or identifying an actual conflicting export; Architect publishes SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`) naming normalized intent serialization, API-only digest ownership, the four prohibited caller-authored selection fields, and the exact retained planning and allocation controls; Tester commits failing-on-base normalization or rejection tests plus case-sensitive Unicode code-point ordering, identical serialized request bytes for permuted IDs, omission preserving both `planningOnly` states, repeated `--decision` parsing and exactly one binding in each generated `workdays plan` and `workdays schedules start` descriptor, and no-SDK-digest assertions. Negative intent validation/serialization tests reject all four caller-supplied prohibited fields for direct typed-object and CLI callers (not silently ignored or accepted as aliases), while positive tests preserve the governed proposal `executionPlan` and API-derived capacity provenance, including persisted `capacityPlanId` as distinct from caller intent; Engineer commits the TypeScript implementation that trims IDs, rejects empty and duplicate-after-trim IDs, sorts by case-sensitive Unicode code-point order, produces identical serialized request bytes for permuted IDs, leaves `planningOnly` unchanged when IDs are omitted, keeps `proposalIds`, `agentSelection`, and `allocation` intact, computes no SDK intent or preflight digest, and rejects caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` without removing the proposal's governed `executionPlan` or API-derived capacity provenance; Technical Writer commits and verifies SDK examples for repeated `--decision`, exact normalized serialized bytes, omission with both `planningOnly` states, API-only digest ownership, the four prohibited caller-authored selection fields, and preservation of `proposalIds`, `agentSelection`, and `allocation`; Releaser integrates and verifies the unpushed local candidate: normalized, case-sensitive Unicode code-point ordering yields identical serialized API request bytes for permuted IDs; omitted IDs preserve both planningOnly states; both generated command bindings accept repeated --decision; direct typed-object and CLI callers reject all four prohibited selection fields at runtime; the SDK computes neither intentDigest nor preflightDigest; proposalIds, agentSelection, allocation, governed proposal executionPlan, and API-derived capacity provenance remain intact. It then reports the unpushed package candidate. The integrated-candidate gates stated in this Releaser criterion apply to the final integrated candidate, not to an earlier Actor's isolated workspace. +Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, and the four prohibited fields; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. -Required acceptance for the final integrated SDK candidate: trim each selected ID, reject empty IDs and duplicates after trimming, and serialize IDs in ascending, case-sensitive Unicode code-point order; a test must prove differing input orders yield identical request bytes sent to the API. Omission preserves `planningOnly: false` and `planningOnly: true` separately; generated descriptors expose `decisionIds` once through repeated `--decision`. SDK proves the normalized request bytes and never computes `intentDigest` or `preflightDigest`; the API alone owns those digests. `WorkdayIntent` must not accept caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, or `demandSetId`; current SDK source exports none of them, so this is a prohibition rather than a fictional deletion. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, the proposal's governed `executionPlan`, and API-derived capacity provenance. Researcher's question-driven work and generated Reviewer remain independent of the standing Architect → Tester → Engineer → Technical Writer → Releaser chain. Each earlier Actor is reviewed only against its own work-item objective and output. +Required acceptance for the final integrated SDK candidate: selected IDs are trimmed, nonempty, unique after trimming, and sorted in ascending case-sensitive Unicode code-point order. Mock transport proves different input orders yield identical outbound JSON bytes for `workdays.plan` and nested `workdays.schedules.create`; omission preserves each `planningOnly` state. Both generated command descriptors declare one repeatable/CSV `--decision` binding; CLI parser/executor behavior is tested in the CLI campaign. Direct SDK and generated-operation calls reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive parsing; the fields were not SDK exports to delete. The SDK computes neither `intentDigest` nor `preflightDigest`; API digest incorporation and persisted capacity provenance are tested in the API campaign. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, governed proposal `executionPlan`, and API-owned capacity provenance as distinct authorities. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. ### 2. API — content-derived acting promotion From 08275ef1c98d409efc08af153551fbfd588cafc4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 17:29:27 -0400 Subject: [PATCH 443/501] Record exact SDK BT supply frontier in agent plans --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 9fe8d31a..bb9eb2ee 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. All eight corrected SDK chat profiles were governed, published, and read back at one exact library ref. BR exposed an estimating closeout that exhausted its unchanged 180-second active deadline; Agent #238 / PR #239 added a bounded production closeout guard and coded scene regression. Graph outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and the repaired 180-second estimating closeout have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The eight SDK chat profiles are published at one exact library ref. BT exposed insufficient remaining shared-model supply at campaign admission; graph outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- The estimating closeout repair passed component and Actions checks but still needs local guest activation and a real SDK golden read-back. API #432 separately tracks premature agent-definition activation before publication; current published and active SDK revisions agree. +- Agent #242 / PR #243 adds a package-owned pre-creation supply gate against the existing provider observation; component tests pass, but staging checks and a fresh daily-supply read-back remain. No cap or test-only policy override is permitted. ### Next acceptance milestone -- Activate the checked guest repair, then run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- After checked integration and UTC-day supply replenishment, run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 54ec4573..33da5914 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,11 +436,11 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. BR stopped in planning after a Tester estimate timed out; its automated cancellation, lease teardown, and exactly-once settlement guarantee passed. Earlier runs proved partial Actor/Reviewer work, not the complete decision-to-settlement path. Detailed receipts are in Platform #520. +- No SDK golden pass. BT completed eight chat turns, seven fresh estimates, and a first eight-role planning cycle, but only five second-cycle turns; the package-owned Reviewer scene stopped at its planning criterion before independent proposal review or an accepted decision. Earlier partial Actor/Reviewer runs do not satisfy the complete path. Detailed receipts are in Platform #520. ### Current active blocker -- The corrected eight-role SDK profiles are published and match the active definitions. The current frontier is the fresh SDK golden run after the estimating closeout repair is activated; see `agent-architecture.md` for that execution boundary. +- The next exact proposal cannot begin until provider supply is genuinely sufficient; see the capacity preflight boundary in `agent-architecture.md`. No graph, decision, or review-cycle shortcut is authorized. ### Next acceptance milestone From b6a567c642cdb41c7b7692df47adbd74dbafe43b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 21:24:38 -0400 Subject: [PATCH 444/501] Clarify SDK golden research and pre-transport test evidence --- docs/agent-acceptance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 407c8716..3f5c3c80 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -301,14 +301,14 @@ The source issue is evidence for choosing the work. The golden proposal below is | Work item | Project-specific objective and expected output | |---|---| -| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. Inventory the four prohibited caller-authored fields, recording their absence or an actual conflicting export. | +| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. For each prohibited caller-authored field, distinguish its absence at the SDK request boundary from any existing API-owned receipt or path evidence; cite the actual source location of each finding rather than implying every field is an SDK intent export. | | Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`). Define one normalization/strict-validation function at the SDK request boundary, generated descriptor bindings, SDK serialization versus API digest/persistence ownership, and all four prohibited fields. Preserve separate `planningOnly`, `proposalIds`, `agentSelection`, `allocation`, governed proposal `executionPlan`, and API-derived capacity provenance. | -| Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Check direct SDK calls and generated-operation requests reject `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive schema parsing. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | +| Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Pass each of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` through both direct workday intent and nested schedule intent request shapes; assert each SDK call throws before the mock transport is invoked, so permissive schema parsing cannot silently discard it. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | | Engineer | Implement the single SDK `WorkdayIntent` normalization/strict-validation function and invoke it from `ControlPlaneClient.invoke` for `workdays.plan` and nested `workdays.schedules.create` before body parsing and JSON serialization. Trim, reject empty/duplicate IDs and forbidden caller-authored fields, sort case-sensitive Unicode code points, and preserve omitted-ID planning behavior and the separate `proposalIds`, `agentSelection`, and `allocation` controls. Generate each command descriptor with one repeated/CSV `--decision` binding. Do not compute SDK digests or alter governed `executionPlan` or API-derived capacity provenance. | | Technical Writer | Update SDK API/reference examples for descriptor-level repeated `--decision` selection, normalized outbound intent, omission with both `planningOnly` states, API-only digest/persistence ownership, and the four prohibited caller-authored fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, and the four prohibited fields; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. +Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of prohibited fields, and any separate API-owned receipt/path evidence; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection before mock transport invocation for both request shapes; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. Required acceptance for the final integrated SDK candidate: selected IDs are trimmed, nonempty, unique after trimming, and sorted in ascending case-sensitive Unicode code-point order. Mock transport proves different input orders yield identical outbound JSON bytes for `workdays.plan` and nested `workdays.schedules.create`; omission preserves each `planningOnly` state. Both generated command descriptors declare one repeatable/CSV `--decision` binding; CLI parser/executor behavior is tested in the CLI campaign. Direct SDK and generated-operation calls reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive parsing; the fields were not SDK exports to delete. The SDK computes neither `intentDigest` nor `preflightDigest`; API digest incorporation and persisted capacity provenance are tested in the API campaign. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, governed proposal `executionPlan`, and API-owned capacity provenance as distinct authorities. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. From 1f703c7359ecbb15bdf8abf00e896ee365ebe0b0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 28 Sep 2026 21:25:38 -0400 Subject: [PATCH 445/501] Clarify SDK golden research and pre-transport test evidence (#585) --- docs/agent-acceptance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 407c8716..3f5c3c80 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -301,14 +301,14 @@ The source issue is evidence for choosing the work. The golden proposal below is | Work item | Project-specific objective and expected output | |---|---| -| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. Inventory the four prohibited caller-authored fields, recording their absence or an actual conflicting export. | +| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. For each prohibited caller-authored field, distinguish its absence at the SDK request boundary from any existing API-owned receipt or path evidence; cite the actual source location of each finding rather than implying every field is an SDK intent export. | | Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`). Define one normalization/strict-validation function at the SDK request boundary, generated descriptor bindings, SDK serialization versus API digest/persistence ownership, and all four prohibited fields. Preserve separate `planningOnly`, `proposalIds`, `agentSelection`, `allocation`, governed proposal `executionPlan`, and API-derived capacity provenance. | -| Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Check direct SDK calls and generated-operation requests reject `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive schema parsing. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | +| Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Pass each of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` through both direct workday intent and nested schedule intent request shapes; assert each SDK call throws before the mock transport is invoked, so permissive schema parsing cannot silently discard it. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | | Engineer | Implement the single SDK `WorkdayIntent` normalization/strict-validation function and invoke it from `ControlPlaneClient.invoke` for `workdays.plan` and nested `workdays.schedules.create` before body parsing and JSON serialization. Trim, reject empty/duplicate IDs and forbidden caller-authored fields, sort case-sensitive Unicode code points, and preserve omitted-ID planning behavior and the separate `proposalIds`, `agentSelection`, and `allocation` controls. Generate each command descriptor with one repeated/CSV `--decision` binding. Do not compute SDK digests or alter governed `executionPlan` or API-derived capacity provenance. | | Technical Writer | Update SDK API/reference examples for descriptor-level repeated `--decision` selection, normalized outbound intent, omission with both `planningOnly` states, API-only digest/persistence ownership, and the four prohibited caller-authored fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, and the four prohibited fields; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. +Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of prohibited fields, and any separate API-owned receipt/path evidence; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection before mock transport invocation for both request shapes; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. Required acceptance for the final integrated SDK candidate: selected IDs are trimmed, nonempty, unique after trimming, and sorted in ascending case-sensitive Unicode code-point order. Mock transport proves different input orders yield identical outbound JSON bytes for `workdays.plan` and nested `workdays.schedules.create`; omission preserves each `planningOnly` state. Both generated command descriptors declare one repeatable/CSV `--decision` binding; CLI parser/executor behavior is tested in the CLI campaign. Direct SDK and generated-operation calls reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive parsing; the fields were not SDK exports to delete. The SDK computes neither `intentDigest` nor `preflightDigest`; API digest incorporation and persisted capacity provenance are tested in the API campaign. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, governed proposal `executionPlan`, and API-owned capacity provenance as distinct authorities. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. From c66cae725e220d54038a38baf5fb6a4a24f5796f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 03:32:04 -0400 Subject: [PATCH 446/501] Clarify SDK golden actor review criteria (#586) --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 3f5c3c80..d79d3420 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -308,7 +308,7 @@ The source issue is evidence for choosing the work. The golden proposal below is | Technical Writer | Update SDK API/reference examples for descriptor-level repeated `--decision` selection, normalized outbound intent, omission with both `planningOnly` states, API-only digest/persistence ownership, and the four prohibited caller-authored fields. | | Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of prohibited fields, and any separate API-owned receipt/path evidence; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary path, all four retained controls, and SDK versus API authority; Tester commits failing-on-base SDK tests for normalized outbound bytes, descriptor bindings, omitted-ID behavior, and forbidden-field rejection before mock transport invocation for both request shapes; Engineer implements one strict SDK normalization path for direct and generated-operation calls without computing API digests or disturbing governed content; Technical Writer commits SDK reference examples scoped to the generated descriptors and SDK request path; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. +Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of all four prohibited caller fields, and separate API-owned receipt/path evidence where it exists; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary normalization and validation path, one repeatable/CSV `--decision` binding in each generated descriptor, rejection of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as caller input, preservation of `planningOnly`, `proposalIds`, `agentSelection`, and `allocation`, and the boundary between SDK serialization, governed proposal `executionPlan`, and API digest/persistence and capacity provenance; Tester commits failing-on-base SDK tests for trimming, empty and explicit-empty selection rejection, duplicate-after-trim rejection, case-sensitive Unicode code-point ordering, byte-identical outbound JSON for permuted selections through both request shapes, both omitted-ID `planningOnly` states, both descriptor bindings, pre-transport rejection of each prohibited caller field through direct `workdays.plan` and nested `workdays.schedules.create`, and absence of SDK-computed digests; Engineer implements those same normalization, descriptor, omission, and per-field rejection behaviors through one strict SDK path for direct and generated-operation calls without computing API digests or changing governed `executionPlan` or API-derived capacity provenance; Technical Writer commits SDK reference examples showing both generated descriptors, normalized outbound selections, omission with `planningOnly: false` and `planningOnly: true`, API-only digest/persistence ownership, and all four prohibited caller-authored fields; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. Required acceptance for the final integrated SDK candidate: selected IDs are trimmed, nonempty, unique after trimming, and sorted in ascending case-sensitive Unicode code-point order. Mock transport proves different input orders yield identical outbound JSON bytes for `workdays.plan` and nested `workdays.schedules.create`; omission preserves each `planningOnly` state. Both generated command descriptors declare one repeatable/CSV `--decision` binding; CLI parser/executor behavior is tested in the CLI campaign. Direct SDK and generated-operation calls reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive parsing; the fields were not SDK exports to delete. The SDK computes neither `intentDigest` nor `preflightDigest`; API digest incorporation and persisted capacity provenance are tested in the API campaign. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, governed proposal `executionPlan`, and API-owned capacity provenance as distinct authorities. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. From ef7a190c5ec39785b9606f433ff3da2285130711 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 04:11:00 -0400 Subject: [PATCH 447/501] Record SDK golden timing frontier without overstating acceptance --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index bb9eb2ee..f2ad7245 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments and the repaired 180-second estimating closeout have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The eight SDK chat profiles are published at one exact library ref. BT exposed insufficient remaining shared-model supply at campaign admission; graph outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The package-owned provider-supply preflight and exact ready-review time-fit gate are checked on staging; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). ### Current active blocker -- Agent #242 / PR #243 adds a package-owned pre-creation supply gate against the existing provider observation; component tests pass, but staging checks and a fresh daily-supply read-back remain. No cap or test-only policy override is permitted. +- No active provider-runtime blocker is established. The current full-run timing decision and unproven acting path are recorded in `agent-assignments.md`; a one-hour diagnostic result does not prove complete AgentKernel acceptance. ### Next acceptance milestone -- After checked integration and UTC-day supply replenishment, run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- Run one fresh, estimate-viable SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown after the workday-duration decision. Graph and review outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 33da5914..225f1ef4 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. BT completed eight chat turns, seven fresh estimates, and a first eight-role planning cycle, but only five second-cycle turns; the package-owned Reviewer scene stopped at its planning criterion before independent proposal review or an accepted decision. Earlier partial Actor/Reviewer runs do not satisfy the complete path. Detailed receipts are in Platform #520. +- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion. Its ready proposal review was not admitted: its 2,700-second minimum exceeded the remaining acting window of the one-hour simulation. The package-owned scene failed and terminal teardown/settlement passed; no decision or Actor/Reviewer path was proven (Platform #520). ### Current active blocker -- The next exact proposal cannot begin until provider supply is genuinely sufficient; see the capacity preflight boundary in `agent-architecture.md`. No graph, decision, or review-cycle shortcut is authorized. +- Full golden acceptance cannot fit the one-hour diagnostic window with DI's genuine review and dependent Actor/Reviewer minima. The next full-run duration requires an explicit viable workday choice; do not shorten estimates, truncate reservations, or bypass the graph. ### Next acceptance milestone -- Refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- After selecting a viable workday duration, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion From 93174f4265f8288f624c318282d767fcd3215a7d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 04:11:51 -0400 Subject: [PATCH 448/501] Record SDK golden timing frontier without overstating acceptance (#587) --- docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index bb9eb2ee..f2ad7245 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments and the repaired 180-second estimating closeout have been observed under the ordinary provider policy in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The eight SDK chat profiles are published at one exact library ref. BT exposed insufficient remaining shared-model supply at campaign admission; graph outcomes belong to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The package-owned provider-supply preflight and exact ready-review time-fit gate are checked on staging; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). ### Current active blocker -- Agent #242 / PR #243 adds a package-owned pre-creation supply gate against the existing provider observation; component tests pass, but staging checks and a fresh daily-supply read-back remain. No cap or test-only policy override is permitted. +- No active provider-runtime blocker is established. The current full-run timing decision and unproven acting path are recorded in `agent-assignments.md`; a one-hour diagnostic result does not prove complete AgentKernel acceptance. ### Next acceptance milestone -- After checked integration and UTC-day supply replenishment, run one fresh one-hour SDK simulation with five slots through final accounting and teardown. Graph outcomes remain owned by `agent-assignments.md`. +- Run one fresh, estimate-viable SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown after the workday-duration decision. Graph and review outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 33da5914..225f1ef4 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -436,15 +436,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. BT completed eight chat turns, seven fresh estimates, and a first eight-role planning cycle, but only five second-cycle turns; the package-owned Reviewer scene stopped at its planning criterion before independent proposal review or an accepted decision. Earlier partial Actor/Reviewer runs do not satisfy the complete path. Detailed receipts are in Platform #520. +- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion. Its ready proposal review was not admitted: its 2,700-second minimum exceeded the remaining acting window of the one-hour simulation. The package-owned scene failed and terminal teardown/settlement passed; no decision or Actor/Reviewer path was proven (Platform #520). ### Current active blocker -- The next exact proposal cannot begin until provider supply is genuinely sufficient; see the capacity preflight boundary in `agent-architecture.md`. No graph, decision, or review-cycle shortcut is authorized. +- Full golden acceptance cannot fit the one-hour diagnostic window with DI's genuine review and dependent Actor/Reviewer minima. The next full-run duration requires an explicit viable workday choice; do not shorten estimates, truncate reservations, or bypass the graph. ### Next acceptance milestone -- Refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- After selecting a viable workday duration, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion From 8fb09bb3369fd783b1de70af4e7e6d25b614ae6a Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 16:11:39 -0400 Subject: [PATCH 449/501] Document fluid workday approval and estimate authority --- docs/agent-acceptance.md | 16 ++++++++-------- docs/agent-architecture.md | 10 +++++----- docs/agent-assignments.md | 9 +++------ docs/agent.schema.yml | 6 ++---- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index d79d3420..7948646f 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -147,7 +147,7 @@ For this local campaign, configure both `codex-research` and `codex-implementati For the all-project portfolio run only, calculate required planning, acting, bounded review, and Reporter supply from the individually accepted genuine estimates. If the normal caps cannot support that work inside the eight-hour window at actual safe concurrency, raise test capability/model caps through versioned provider configuration, preflight again, and freeze the exact temporary offer. Never lower a viable assignment minimum or exceed host/model limits to force admission. Restore and verify the ordinary caps after settlement. If the host cannot supply a viable plan, do not start the portfolio workday; report the exact shortfall. -Admission must explain weighted workday entitlement, the planning pool, project/class opportunity, scoped calibration measurements, viable task minimum, limiting constraint, active-duration reservation and hard deadline. Agent-authored estimate triples and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient viable capacity defers a node without changing its dependencies. At the phase boundary unused planning entitlement becomes acting/review capacity. +Admission must explain weighted workday entitlement, the initial planning pool, project/class opportunity, scoped calibration measurements, limiting constraint, active-duration reservation and hard deadline. Agent-authored expected/maximum estimates and rationale remain unchanged content authority. With no eligible history, acting starts from the maximum estimate subject to real supply/provider ceilings; later allocations use measured calibration. Insufficient capacity defers a node without changing its dependencies. After the initial planning window, unused planning entitlement becomes acting/review capacity when accepted work is ready; otherwise planning continues. Selecting a governed proposal must automatically generate estimating turns for its work owners and Reviewer through the ordinary graph, after planning contributions. Do not require an operator activity override to obtain genuine estimates. Without a selected proposal, autonomous planning remains valid and no subjectless estimating work is generated. @@ -188,12 +188,12 @@ Every project follows the same lifecycle. The project sections below supply the 2. Start the simulation workday with the frozen high-level allocation policy, then open one proposal discussion addressed to Architect, Researcher, Tester, Engineer, Technical Writer, Releaser, Reviewer, and Reporter. Planning/estimating turns use ordinary graph admission against actual remaining supply. 3. Run one relevant `chat` probe for all eight project agents while the discussion is open. Chat must use the communication lane, must not inherit standing work dependencies, and must not create graph edges. 4. Collect one discussion contribution from each of the eight project agents. Contributions identify risks, questions, dependencies, verification, documentation, release, and reporting concerns without changing the fixed objective. -5. During allocator-driven planning, run estimating assignments for Researcher, Architect, Tester, Engineer, Technical Writer, and Releaser work plus one Reviewer assignment covering all paired-review estimates. Every estimate contains `minimumSeconds`, `expectedSeconds`, `maximumSeconds`, and a rationale, with `minimum <= expected <= maximum`. -6. Update the same proposal to `ready` using those genuine estimating outputs, preserving its fixed objective, topology, permissions and acceptance criteria. Record the exact ready revision/digest; differing estimate values are not a plan-review failure. -7. Resolve every question or gate. The proposal-governance Reviewer binds its disposition to the exact ready proposal revision and digest. -8. Create one classed `proposal` decision accepting that exact proposal. No decision may carry a separate plan, graph, role map, source commit, or capacity plan. -9. Reconcile the accepted content into the living team execution graph. -10. Continue the same simulation workday from repeated planning turns into ready project work, generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. The workday starts before planning/estimating, not after the estimates exist. Acting cannot begin during planning. +5. During allocator-driven planning, run estimating assignments for Researcher, Architect, Tester, Engineer, Technical Writer, and Releaser work plus one Reviewer assignment covering all paired-review estimates. Every estimate contains `expectedSeconds`, `maximumSeconds`, and a rationale, with `expected <= maximum`. These inform a bounded maximum allocation, never a minimum execution time. +6. Update the same proposal to `ready` using genuine estimating outputs, preserving its fixed objective, topology, permissions and acceptance criteria. Record the exact revision/digest; differing estimate values are not a plan-review failure. Resolve blocking questions through planning discussion, not a separate proposal-feasibility review assignment. +7. Obtain external approval through the proposal-approval CLI, either before or after estimates. Approval alone does not admit acting. The API requires both approval of the unchanged proposal authority and complete owner/Reviewer estimates, then records one classed `proposal` decision bound to that exact content. No decision carries a separate plan, graph, role map, source commit, or capacity plan. +8. Reconcile the accepted content into the living team execution graph. Multiple proposals may be discussed and estimated in parallel in one planning phase. +9. The first planning percentage is a minimum initial window. After it, the API admits graph-ready acting work when available; otherwise it continues planning and may return to planning whenever no accepted work is ready. Acting never occurs inside the initial planning window. +10. Continue through generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. Agents may finish early. An unfinished graph at the end of the one-hour diagnostic workday is reported honestly and remains eligible for a later workday; it does not by itself fail that workday or constitute a golden pass. If the current implementation cannot represent this lifecycle without an alternate assignment path or duplicate plan authority, stop. Do not simplify the acceptance case to match the implementation. @@ -206,7 +206,7 @@ These expectations apply to every project and are not repeated in each proposal. | `chat` | All eight agents | Addressed message, exact subject refs, profile prompt and grant | One general result or discussion message that answers only the addressed question; no graph mutation | | `planning`, round 1 | All eight agents | Proposal, project objectives and knowledge, exact source base, own profile | Independent contribution from that agent's responsibility; questions use the core `question` model | | `planning`, later cycles | Same eight agents | Prior published contributions plus unchanged source context | A synthesis that explicitly cites consumed predecessor result IDs and identifies any changed recommendation | -| `estimating` | Six work owners plus Reviewer | Exact work item, acceptance criteria, dependencies, workspace and grants | Valid estimate triple and rationale; Reviewer estimates each generated review independently | +| `estimating` | Six work owners plus Reviewer | Exact work item, acceptance criteria, dependencies, workspace and grants | Expected/maximum estimate and rationale; Reviewer estimates each generated review independently | | `acting` | Researcher, Architect, Tester, Engineer, Technical Writer, Releaser | Immutable assignment, exact proposal/decision, predecessor results, profile, grant, base and deadline | One `AssignmentResult` with ordinary TreeDX or Git refs, verification, non-zero observed usage when time elapsed, diagnostics and two clock checks | | `reviewing` | Reviewer only | Exact objective, acceptance criteria, candidate result/ref, verification and immutable source authority | Notes/questions as needed and one classed `work-review` decision bound to the exact candidate; Reviewer never mutates it | | `reporting` | Reporter only | Ended planning rounds, complete graph/attempt/result/settlement records and workday-closing event | Deterministic note-based report and exact `Workday.reportRef` through the ordinary result path | diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f2ad7245..c636a451 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -357,7 +357,7 @@ Manual and recurring workdays use one high-level intent and the same preflight/s ### Planning phase -Planning uses the first `planningPercent` of wall-clock duration and allocated capacity. Repeated short turns follow activity dependencies, give eligible agents equal turn ceilings, and load previous contributions through TreeDX. Class/project percentages govern opportunity frequency. Planning requires no existing proposal and admits no implementation, deployment, or release. Estimates are authored during planning; proposals may originate in any authorized activity. At the phase boundary, stop unfinished planning turns and release unused capacity to acting/review. +Planning has a minimum initial window of `planningPercent` of wall-clock duration. Repeated short turns follow activity dependencies, give eligible agents equal turn ceilings, and load previous contributions through TreeDX. Class/project percentages govern opportunity frequency. Planning requires no existing proposal and admits no implementation, deployment, or release. Estimates are authored during planning; proposals may originate in any authorized activity. After the initial window, act only when approved, estimated graph work is ready; otherwise continue or return to planning. Agents may finish before their maximum allocation. Provider-owned capability caps and a shared execution-provider/model cap bound every workday. Normalize active workday weights (default 1), preserve existing reservations, and redistribute idle project/class target shares only to admissible graph-ready work. Both production and simulation consume real supply. Charge active harness/model/tool time, including model-backed preparation and closeout; record infrastructure setup, queueing, and teardown separately. @@ -450,7 +450,7 @@ Acceptance: - [ ] Prove parallel Researcher → Reviewer and Architect → Tester → Engineer → Technical Writer → Releaser ordering for planning, estimating, and acting, with generated review pairs and no cross-branch edge. - [ ] Make the Architect maintain a conventional ` Architecture` book of validated knowledge pages. - [x] Route Reviewer findings through notes/questions and formal dispositions through decisions, all bound to exact candidate references. -- [x] Remove Reviewer acting behavior; route proposal review and every required acting-work review through the same Reviewer `reviewing` profile. +- [ ] Remove Reviewer acting behavior and separate proposal-feasibility review; route each required acting-work review through the Reviewer `reviewing` profile. The external approval and agent estimates jointly gate acting. - [ ] Add one project-owned handler that reuses or implements the shared interface and prove selection without changing Agent-package code. - [ ] Keep books, knowledge, proposals, notes, questions, classed decisions, proposal-embedded estimates, and note-based workday reports on ordinary TreeDX operations. - [ ] Remove TreeDX assignment-plan, assignment-status, and assignment-summary content; consume PostgreSQL assignment state and general results instead. @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The package-owned provider-supply preflight and exact ready-review time-fit gate are checked on staging; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The fluid planning and approval migration is in progress; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-runtime blocker is established. The current full-run timing decision and unproven acting path are recorded in `agent-assignments.md`; a one-hour diagnostic result does not prove complete AgentKernel acceptance. +- No active provider-runtime blocker is established. The revised one-hour acting and carry-forward path is not yet integrated or proven; a diagnostic result does not prove complete AgentKernel acceptance. ### Next acceptance milestone -- Run one fresh, estimate-viable SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown after the workday-duration decision. Graph and review outcomes remain owned by `agent-assignments.md`. +- Run a fresh one-hour SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown. Graph and review outcomes remain owned by `agent-assignments.md`. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 225f1ef4..6a02355a 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -77,11 +77,9 @@ executionPlan: review: required objective: Define the required behavior and boundaries. estimate: - minimumSeconds: 600 expectedSeconds: 900 maximumSeconds: 1200 reviewEstimate: - minimumSeconds: 180 expectedSeconds: 300 maximumSeconds: 600 maximumReviewCycles: 2 @@ -228,7 +226,6 @@ nodeRevision: 2 agentClass: engineer status: proposed | blocked | ready | assigned | running | completed | failed | cancelled | stale estimate: - minimumSeconds: 900 expectedSeconds: 1800 maximumSeconds: 3600 requiredCapabilities: [] @@ -436,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion. Its ready proposal review was not admitted: its 2,700-second minimum exceeded the remaining acting window of the one-hour simulation. The package-owned scene failed and terminal teardown/settlement passed; no decision or Actor/Reviewer path was proven (Platform #520). +- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion; its separate proposal-review minimum blocked acting. That gate is being removed while retaining external approval and exact estimate authority (Platform #520). ### Current active blocker -- Full golden acceptance cannot fit the one-hour diagnostic window with DI's genuine review and dependent Actor/Reviewer minima. The next full-run duration requires an explicit viable workday choice; do not shorten estimates, truncate reservations, or bypass the graph. +- The revised approval, fluid planning, and carry-forward path has not yet passed a package-owned integrated scene; no acting or complete golden result can be claimed. ### Next acceptance milestone -- After selecting a viable workday duration, refreeze one fresh SDK proposal and verify the accepted decision, six Actor/Reviewer pairs, correction/re-review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- Refreeze one fresh one-hour SDK simulation and verify external approval plus estimates, acting admission, Actor/Reviewer pairs, carry-forward if needed, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. ## Completion diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index dcc2a772..40e9d1bc 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -327,12 +327,10 @@ $defs: - $ref: "#/$defs/UrlReference" Estimate: - # minimum <= expected <= maximum is also enforced by semantic validation. + # expected <= maximum is enforced by semantic validation; neither is a minimum runtime. type: object - required: [minimumSeconds, expectedSeconds, maximumSeconds] + required: [expectedSeconds, maximumSeconds] properties: - minimumSeconds: - $ref: "#/$defs/PositiveSeconds" expectedSeconds: $ref: "#/$defs/PositiveSeconds" maximumSeconds: From 3f17f23b36e7b6852784763a8a0eb3ba630f0f0c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 21:33:09 -0400 Subject: [PATCH 450/501] docs: record SDK DO carry-forward frontier --- docs/agent-assignments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6a02355a..8d7a74c8 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -433,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion; its separate proposal-review minimum blocked acting. That gate is being removed while retaining external approval and exact estimate authority (Platform #520). +- No SDK golden pass. Automated DO completed two eight-role planning cycles, seven genuine estimates, external approval, and five approved Actor/Reviewer pairs. The Writer passed a genuine request-changes → revision → re-review cycle; Releaser then timed out with only 317 active seconds remaining in the one-hour workday (Platform #520). ### Current active blocker -- The revised approval, fluid planning, and carry-forward path has not yet passed a package-owned integrated scene; no acting or complete golden result can be claimed. +- The one-hour campaign still treats a late assignment timeout as a failed boundary and stops before release review or Reporter. Carry-forward of the unfinished accepted graph into a later workday has not passed a package-owned scene. ### Next acceptance milestone -- Refreeze one fresh one-hour SDK simulation and verify external approval plus estimates, acting admission, Actor/Reviewer pairs, carry-forward if needed, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- Prove deadline closeout and exact-decision graph carry-forward with coded scenes, then continue the existing accepted SDK work through Releaser review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory without weakening the one-hour simulation boundary. ## Completion From 4ce60edce724b0206716f0361d397f178b0dae83 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Tue, 29 Sep 2026 21:34:21 -0400 Subject: [PATCH 451/501] docs: record SDK DO carry-forward frontier (#589) --- docs/agent-assignments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 6a02355a..8d7a74c8 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -433,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. DI completed two eight-role planning cycles, seven genuine estimates, and eight-role discussion; its separate proposal-review minimum blocked acting. That gate is being removed while retaining external approval and exact estimate authority (Platform #520). +- No SDK golden pass. Automated DO completed two eight-role planning cycles, seven genuine estimates, external approval, and five approved Actor/Reviewer pairs. The Writer passed a genuine request-changes → revision → re-review cycle; Releaser then timed out with only 317 active seconds remaining in the one-hour workday (Platform #520). ### Current active blocker -- The revised approval, fluid planning, and carry-forward path has not yet passed a package-owned integrated scene; no acting or complete golden result can be claimed. +- The one-hour campaign still treats a late assignment timeout as a failed boundary and stops before release review or Reporter. Carry-forward of the unfinished accepted graph into a later workday has not passed a package-owned scene. ### Next acceptance milestone -- Refreeze one fresh one-hour SDK simulation and verify external approval plus estimates, acting admission, Actor/Reviewer pairs, carry-forward if needed, Reporter, settlement, teardown, product gates, and unchanged upstream inventory through package-owned scenes. +- Prove deadline closeout and exact-decision graph carry-forward with coded scenes, then continue the existing accepted SDK work through Releaser review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory without weakening the one-hour simulation boundary. ## Completion From 8508d7cf30d041d58938d397ed91831e58b968a9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 00:49:45 -0400 Subject: [PATCH 452/501] Define explicit settled continuation and keep golden acceptance gaps honest --- docs/agent-acceptance.md | 2 ++ docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 2 +- docs/agent.schema.yml | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7948646f..101861c2 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -195,6 +195,8 @@ Every project follows the same lifecycle. The project sections below supply the 9. The first planning percentage is a minimum initial window. After it, the API admits graph-ready acting work when available; otherwise it continues planning and may return to planning whenever no accepted work is ready. Acting never occurs inside the initial planning window. 10. Continue through generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. Agents may finish early. An unfinished graph at the end of the one-hour diagnostic workday is reported honestly and remains eligible for a later workday; it does not by itself fail that workday or constitute a golden pass. +An explicit continuation uses `trsd workdays plan --continue-from --decision ` with the same project/mode/provider custody and high-level allocation inputs. The API rejects outstanding leases or reservations and retains exact completed predecessor results and consumed review allowances from existing workday records. It creates fresh assignments only for unfinished nodes; no result, estimate, review, usage or candidate is copied or fabricated. This is not a fresh golden reset: ordinary new simulations omit `--continue-from` and retain the reset boundary above. Package-owned scenes must distinguish complete campaign proof from an incomplete one-hour segment; a continued result alone cannot retroactively pass a failed segment. + If the current implementation cannot represent this lifecycle without an alternate assignment path or duplicate plan authority, stop. Do not simplify the acceptance case to match the implementation. ## Common activity-profile expectations diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index c636a451..a24d4189 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The fluid planning and approval migration is in progress; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and complete planning cycles are proven in simulation with `gpt-6-luna:low` on the ChatGPT subscription; graph and review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-runtime blocker is established. The revised one-hour acting and carry-forward path is not yet integrated or proven; a diagnostic result does not prove complete AgentKernel acceptance. +- Reboot recovery exposed Docker-created runtime bind placeholders and permissions; Deployment #802/#803 repairs their safe rematerialization, with managed API/provider read-back still pending. ### Next acceptance milestone -- Run a fresh one-hour SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown. Graph and review outcomes remain owned by `agent-assignments.md`. +- Restore the development runtime and prove one-hour continuation through AgentKernel execution, measured accounting and teardown; see `agent-assignments.md` for the exact accepted-graph frontier. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 8d7a74c8..86ed2fc9 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- The one-hour campaign still treats a late assignment timeout as a failed boundary and stops before release review or Reporter. Carry-forward of the unfinished accepted graph into a later workday has not passed a package-owned scene. +- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454 with focused, scene and real PostgreSQL CI gates; live carry-forward, Releaser review and Reporter remain unproven. ### Next acceptance milestone diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 40e9d1bc..0163e7ff 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1707,6 +1707,15 @@ $defs: # Manual and recurring workdays use this one high-level input; resolved Workday owns mode and policy. type: object required: [schemaVersion, teamId, profileId, projects, startsAt] + allOf: + - if: {required: [continueFromWorkdayId]} + then: + required: [decisionIds] + not: + anyOf: + - required: [proposalIds] + - required: [planningOnly] + properties: {planningOnly: {const: true}} properties: schemaVersion: {const: treeseed.workday-intent/v1} teamId: {$ref: "#/$defs/Identifier"} @@ -1723,6 +1732,12 @@ $defs: objectiveFilters: {type: array, items: {$ref: "#/$defs/Identifier"}} proposalIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} decisionIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + continueFromWorkdayId: + type: string + minLength: 1 + maxLength: 128 + pattern: '\S' + description: Explicit settled workday lineage; same team, mode, provider and selected decisions. Fresh simulations omit this field and reset attempts. allocation: type: object properties: From f57b1f3560b702ad9d13ff39530750e5a3f015a3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 00:52:10 -0400 Subject: [PATCH 453/501] Define explicit settled continuation and keep golden acceptance gaps honest (#590) --- docs/agent-acceptance.md | 2 ++ docs/agent-architecture.md | 6 +++--- docs/agent-assignments.md | 2 +- docs/agent.schema.yml | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 7948646f..101861c2 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -195,6 +195,8 @@ Every project follows the same lifecycle. The project sections below supply the 9. The first planning percentage is a minimum initial window. After it, the API admits graph-ready acting work when available; otherwise it continues planning and may return to planning whenever no accepted work is ready. Acting never occurs inside the initial planning window. 10. Continue through generated Reviewer pairs, simulated release, Reporter closeout, and exactly-once settlement. Agents may finish early. An unfinished graph at the end of the one-hour diagnostic workday is reported honestly and remains eligible for a later workday; it does not by itself fail that workday or constitute a golden pass. +An explicit continuation uses `trsd workdays plan --continue-from --decision ` with the same project/mode/provider custody and high-level allocation inputs. The API rejects outstanding leases or reservations and retains exact completed predecessor results and consumed review allowances from existing workday records. It creates fresh assignments only for unfinished nodes; no result, estimate, review, usage or candidate is copied or fabricated. This is not a fresh golden reset: ordinary new simulations omit `--continue-from` and retain the reset boundary above. Package-owned scenes must distinguish complete campaign proof from an incomplete one-hour segment; a continued result alone cannot retroactively pass a failed segment. + If the current implementation cannot represent this lifecycle without an alternate assignment path or duplicate plan authority, stop. Do not simplify the acceptance case to match the implementation. ## Common activity-profile expectations diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index c636a451..a24d4189 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -546,15 +546,15 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current integrated state -- Five concurrent Kata assignments and repeated complete planning cycles have been observed in simulation with `gpt-6-luna:low` on the ChatGPT subscription. The fluid planning and approval migration is in progress; DI's graph outcome belongs to `agent-assignments.md` (Platform #520). +- Five concurrent Kata assignments and complete planning cycles are proven in simulation with `gpt-6-luna:low` on the ChatGPT subscription; graph and review outcomes belong to `agent-assignments.md` (Platform #520). ### Current active blocker -- No active provider-runtime blocker is established. The revised one-hour acting and carry-forward path is not yet integrated or proven; a diagnostic result does not prove complete AgentKernel acceptance. +- Reboot recovery exposed Docker-created runtime bind placeholders and permissions; Deployment #802/#803 repairs their safe rematerialization, with managed API/provider read-back still pending. ### Next acceptance milestone -- Run a fresh one-hour SDK simulation with five slots through AgentKernel execution, measured accounting, and teardown. Graph and review outcomes remain owned by `agent-assignments.md`. +- Restore the development runtime and prove one-hour continuation through AgentKernel execution, measured accounting and teardown; see `agent-assignments.md` for the exact accepted-graph frontier. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 8d7a74c8..86ed2fc9 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- The one-hour campaign still treats a late assignment timeout as a failed boundary and stops before release review or Reporter. Carry-forward of the unfinished accepted graph into a later workday has not passed a package-owned scene. +- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454 with focused, scene and real PostgreSQL CI gates; live carry-forward, Releaser review and Reporter remain unproven. ### Next acceptance milestone diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 40e9d1bc..0163e7ff 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1707,6 +1707,15 @@ $defs: # Manual and recurring workdays use this one high-level input; resolved Workday owns mode and policy. type: object required: [schemaVersion, teamId, profileId, projects, startsAt] + allOf: + - if: {required: [continueFromWorkdayId]} + then: + required: [decisionIds] + not: + anyOf: + - required: [proposalIds] + - required: [planningOnly] + properties: {planningOnly: {const: true}} properties: schemaVersion: {const: treeseed.workday-intent/v1} teamId: {$ref: "#/$defs/Identifier"} @@ -1723,6 +1732,12 @@ $defs: objectiveFilters: {type: array, items: {$ref: "#/$defs/Identifier"}} proposalIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} decisionIds: {type: array, minItems: 1, maxItems: 64, uniqueItems: true, items: {$ref: "#/$defs/Identifier"}} + continueFromWorkdayId: + type: string + minLength: 1 + maxLength: 128 + pattern: '\S' + description: Explicit settled workday lineage; same team, mode, provider and selected decisions. Fresh simulations omit this field and reset attempts. allocation: type: object properties: From 4ab28386b858bdbdd0d23022ac75e9f18d34cf38 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 01:16:28 -0400 Subject: [PATCH 454/501] docs: retain honest reboot and continuation acceptance frontier --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a24d4189..01802ec5 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,11 +550,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Reboot recovery exposed Docker-created runtime bind placeholders and permissions; Deployment #802/#803 repairs their safe rematerialization, with managed API/provider read-back still pending. +- Deployment #803/#804 restores ephemeral bind custody and the development-held API database client; managed API, runner, provider and TreeDX read-back passes. Repeat physical-reboot acceptance remains unproven (Deployment #802); the next execution frontier is in `agent-assignments.md`. ### Next acceptance milestone -- Restore the development runtime and prove one-hour continuation through AgentKernel execution, measured accounting and teardown; see `agent-assignments.md` for the exact accepted-graph frontier. +- Prove one-hour continuation through AgentKernel execution, measured accounting and teardown using package-owned scenes; see `agent-assignments.md` for the exact accepted-graph frontier. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 86ed2fc9..2d682d75 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454 with focused, scene and real PostgreSQL CI gates; live carry-forward, Releaser review and Reporter remain unproven. +- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454. Agent #264 adds the focused automated exact-candidate continuation scene; live carry-forward, Releaser review and Reporter remain unproven. ### Next acceptance milestone From 38240a4998f6dc23b673d113c2860566d4399d22 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 01:21:28 -0400 Subject: [PATCH 455/501] docs: retain honest reboot and continuation acceptance frontier (#591) --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a24d4189..01802ec5 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,11 +550,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Reboot recovery exposed Docker-created runtime bind placeholders and permissions; Deployment #802/#803 repairs their safe rematerialization, with managed API/provider read-back still pending. +- Deployment #803/#804 restores ephemeral bind custody and the development-held API database client; managed API, runner, provider and TreeDX read-back passes. Repeat physical-reboot acceptance remains unproven (Deployment #802); the next execution frontier is in `agent-assignments.md`. ### Next acceptance milestone -- Restore the development runtime and prove one-hour continuation through AgentKernel execution, measured accounting and teardown; see `agent-assignments.md` for the exact accepted-graph frontier. +- Prove one-hour continuation through AgentKernel execution, measured accounting and teardown using package-owned scenes; see `agent-assignments.md` for the exact accepted-graph frontier. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 86ed2fc9..2d682d75 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454 with focused, scene and real PostgreSQL CI gates; live carry-forward, Releaser review and Reporter remain unproven. +- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454. Agent #264 adds the focused automated exact-candidate continuation scene; live carry-forward, Releaser review and Reporter remain unproven. ### Next acceptance milestone From 5d473a70710d0bffd975d8f93e6f95d7b4bbc8a6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 02:05:07 -0400 Subject: [PATCH 456/501] docs: record verified continuation frontier and remaining recovery gates --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 01802ec5..fb928ab4 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Deployment #803/#804 restores ephemeral bind custody and the development-held API database client; managed API, runner, provider and TreeDX read-back passes. Repeat physical-reboot acceptance remains unproven (Deployment #802); the next execution frontier is in `agent-assignments.md`. +- Managed reboot recovery is restored by Deployment #803/#804, but repeat physical-reboot acceptance remains unproven (#802). API #457 isolates malformed historical recovery so newer stopped attempts can settle; three prior teardown receipts remain missing and are not accepted as successful cleanup (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2d682d75..5c904ef8 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454. Agent #264 adds the focused automated exact-candidate continuation scene; live carry-forward, Releaser review and Reporter remain unproven. +- The focused continuation carried forward five approved Actor/Reviewer pairs, then failed after decision-only planning discovered unrelated proposals. API #456 scopes later turns to selected decisions; automated post-fix release/review/Reporter acceptance remains unproven. Provider recovery gates belong to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From f9eae4e60ad369e0cec3057295271a6d0ef924b1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 02:07:40 -0400 Subject: [PATCH 457/501] docs: record verified continuation frontier and remaining recovery gates (#592) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 01802ec5..fb928ab4 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Deployment #803/#804 restores ephemeral bind custody and the development-held API database client; managed API, runner, provider and TreeDX read-back passes. Repeat physical-reboot acceptance remains unproven (Deployment #802); the next execution frontier is in `agent-assignments.md`. +- Managed reboot recovery is restored by Deployment #803/#804, but repeat physical-reboot acceptance remains unproven (#802). API #457 isolates malformed historical recovery so newer stopped attempts can settle; three prior teardown receipts remain missing and are not accepted as successful cleanup (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2d682d75..5c904ef8 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Explicit continuation contracts and API lineage admission are integrated through SDK #346 and API #454. Agent #264 adds the focused automated exact-candidate continuation scene; live carry-forward, Releaser review and Reporter remain unproven. +- The focused continuation carried forward five approved Actor/Reviewer pairs, then failed after decision-only planning discovered unrelated proposals. API #456 scopes later turns to selected decisions; automated post-fix release/review/Reporter acceptance remains unproven. Provider recovery gates belong to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From c957bb6cb9cf2ec623041d182d6000f80bbaee44 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 03:15:43 -0400 Subject: [PATCH 458/501] docs: record paused-update reboot recovery boundary (#520) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index fb928ab4..69b916eb 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Managed reboot recovery is restored by Deployment #803/#804, but repeat physical-reboot acceptance remains unproven (#802). API #457 isolates malformed historical recovery so newer stopped attempts can settle; three prior teardown receipts remain missing and are not accepted as successful cleanup (Platform #520). +- Repeat reboot exposed release pauses skipping runtime recovery; Deployment #805 now recovers pinned dependencies and development selections without manual custody repair, but a physical reboot with that fix installed remains unproven (#802). API #457 isolates malformed historical recovery; three prior teardown receipts remain missing (Platform #520). ### Next acceptance milestone From 6ec206a2194513ed1ada30a6e24b16c45f81f557 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 03:17:06 -0400 Subject: [PATCH 459/501] docs: record paused-update reboot recovery boundary (#520) (#593) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index fb928ab4..69b916eb 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Managed reboot recovery is restored by Deployment #803/#804, but repeat physical-reboot acceptance remains unproven (#802). API #457 isolates malformed historical recovery so newer stopped attempts can settle; three prior teardown receipts remain missing and are not accepted as successful cleanup (Platform #520). +- Repeat reboot exposed release pauses skipping runtime recovery; Deployment #805 now recovers pinned dependencies and development selections without manual custody repair, but a physical reboot with that fix installed remains unproven (#802). API #457 isolates malformed historical recovery; three prior teardown receipts remain missing (Platform #520). ### Next acceptance milestone From e6deac5bb304010da8af305dd8750caae68d319f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 03:43:49 -0400 Subject: [PATCH 460/501] docs: record successful automatic physical reboot recovery (#520) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 69b916eb..76f0bc93 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Repeat reboot exposed release pauses skipping runtime recovery; Deployment #805 now recovers pinned dependencies and development selections without manual custody repair, but a physical reboot with that fix installed remains unproven (#802). API #457 isolates malformed historical recovery; three prior teardown receipts remain missing (Platform #520). +- No active reboot blocker: normal physical reboot recovered pinned services and development selections automatically (Deployment #802/#805). Historical teardown evidence and the exact accepted-graph frontier remain owned by `agent-assignments.md` and Platform #520; no golden acceptance is implied. ### Next acceptance milestone From d82aa0b08e22ee1fba8863dc5d3738d0554e6246 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 03:46:59 -0400 Subject: [PATCH 461/501] docs: record successful automatic physical reboot recovery (#520) (#594) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 69b916eb..76f0bc93 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Repeat reboot exposed release pauses skipping runtime recovery; Deployment #805 now recovers pinned dependencies and development selections without manual custody repair, but a physical reboot with that fix installed remains unproven (#802). API #457 isolates malformed historical recovery; three prior teardown receipts remain missing (Platform #520). +- No active reboot blocker: normal physical reboot recovered pinned services and development selections automatically (Deployment #802/#805). Historical teardown evidence and the exact accepted-graph frontier remain owned by `agent-assignments.md` and Platform #520; no golden acceptance is implied. ### Next acceptance milestone From 94ad6f3a1e21a6497022755343bc9c3ea7368fdf Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 04:14:48 -0400 Subject: [PATCH 462/501] docs: record exact continuation execution frontier without broad acceptance claims (#520) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 76f0bc93..10a8e658 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active reboot blocker: normal physical reboot recovered pinned services and development selections automatically (Deployment #802/#805). Historical teardown evidence and the exact accepted-graph frontier remain owned by `agent-assignments.md` and Platform #520; no golden acceptance is implied. +- Planning synthesis remains an active execution blocker: a bounded same-session correction still omitted an exact predecessor citation (Agent #267); coded recovery gates pass, but post-fix live acceptance is unproven. Normal physical reboot passed automatically (Deployment #802/#805). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 5c904ef8..065a6989 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- The focused continuation carried forward five approved Actor/Reviewer pairs, then failed after decision-only planning discovered unrelated proposals. API #456 scopes later turns to selected decisions; automated post-fix release/review/Reporter acceptance remains unproven. Provider recovery gates belong to `agent-architecture.md` (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs; post-fix planning stays decision-scoped, but release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; stopped-run lease release, teardown and exactly-once settlement passed (Platform #520). ### Next acceptance milestone From afda20073da3df9fb6b12740a5f5e41a689fb719 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 04:17:23 -0400 Subject: [PATCH 463/501] docs: record exact continuation execution frontier without broad acceptance claims (#520) (#595) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 76f0bc93..10a8e658 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active reboot blocker: normal physical reboot recovered pinned services and development selections automatically (Deployment #802/#805). Historical teardown evidence and the exact accepted-graph frontier remain owned by `agent-assignments.md` and Platform #520; no golden acceptance is implied. +- Planning synthesis remains an active execution blocker: a bounded same-session correction still omitted an exact predecessor citation (Agent #267); coded recovery gates pass, but post-fix live acceptance is unproven. Normal physical reboot passed automatically (Deployment #802/#805). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 5c904ef8..065a6989 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- The focused continuation carried forward five approved Actor/Reviewer pairs, then failed after decision-only planning discovered unrelated proposals. API #456 scopes later turns to selected decisions; automated post-fix release/review/Reporter acceptance remains unproven. Provider recovery gates belong to `agent-architecture.md` (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs; post-fix planning stays decision-scoped, but release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; stopped-run lease release, teardown and exactly-once settlement passed (Platform #520). ### Next acceptance milestone From 866bdafaa0e185da6a384165e2ff9e6bc24b6e5c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 11:40:55 -0400 Subject: [PATCH 464/501] docs(agent): record current source authorization acceptance frontier Refs #596 and #520. Retain concise owner boundaries, stopped-run proof and unproven live correction; no schema or checkbox changes. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 10a8e658..a7261ff3 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Planning synthesis remains an active execution blocker: a bounded same-session correction still omitted an exact predecessor citation (Agent #267); coded recovery gates pass, but post-fix live acceptance is unproven. Normal physical reboot passed automatically (Deployment #802/#805). +- Moving-ref source authorization exhausted anonymous GitHub quota during planning (API #459); API-only managed-custody and immutable-pin regression scenes pass, but runtime activation and live acceptance remain unproven. Agent #267's actual synthesis correction remains unproven; normal physical reboot passed automatically (Deployment #802/#805). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 065a6989..81727369 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs; post-fix planning stays decision-scoped, but release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; stopped-run lease release, teardown and exactly-once settlement passed (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs; release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; automated stopped acceptance again proves lease release, teardown and exactly-once settlement (Platform #520). ### Next acceptance milestone From 0747da0e1abb539e47e2a17bfa74c65b1f58c239 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 11:43:28 -0400 Subject: [PATCH 465/501] docs(agent): record current source authorization acceptance frontier (#597) Refs #596 and #520. Retain concise owner boundaries, stopped-run proof and unproven live correction; no schema or checkbox changes. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 10a8e658..a7261ff3 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Planning synthesis remains an active execution blocker: a bounded same-session correction still omitted an exact predecessor citation (Agent #267); coded recovery gates pass, but post-fix live acceptance is unproven. Normal physical reboot passed automatically (Deployment #802/#805). +- Moving-ref source authorization exhausted anonymous GitHub quota during planning (API #459); API-only managed-custody and immutable-pin regression scenes pass, but runtime activation and live acceptance remain unproven. Agent #267's actual synthesis correction remains unproven; normal physical reboot passed automatically (Deployment #802/#805). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 065a6989..81727369 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs; post-fix planning stays decision-scoped, but release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; stopped-run lease release, teardown and exactly-once settlement passed (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs; release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; automated stopped acceptance again proves lease release, teardown and exactly-once settlement (Platform #520). ### Next acceptance milestone From 3574d39322743bfc687fe24250b2482d2302d8b2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 12:37:32 -0400 Subject: [PATCH 466/501] docs: replace repaired source blocker with current active-window frontier (#520) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a7261ff3..8ede7644 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Moving-ref source authorization exhausted anonymous GitHub quota during planning (API #459); API-only managed-custody and immutable-pin regression scenes pass, but runtime activation and live acceptance remain unproven. Agent #267's actual synthesis correction remains unproven; normal physical reboot passed automatically (Deployment #802/#805). +- Admission precharged the full infrastructure watchdog against active phase/day windows (API #461/#462); captured production/simulation regression scenes pass, but checked integration and live execution remain unproven. API #459 is activated with no source-quota returns in the next segment; Agent #267's actual synthesis correction remains unproven. ### Next acceptance milestone From 5ae52ed4dabee37ab4f60d131127c9858ab767f2 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 12:39:14 -0400 Subject: [PATCH 467/501] docs: replace repaired source blocker with current active-window frontier (#520) (#598) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a7261ff3..8ede7644 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Moving-ref source authorization exhausted anonymous GitHub quota during planning (API #459); API-only managed-custody and immutable-pin regression scenes pass, but runtime activation and live acceptance remain unproven. Agent #267's actual synthesis correction remains unproven; normal physical reboot passed automatically (Deployment #802/#805). +- Admission precharged the full infrastructure watchdog against active phase/day windows (API #461/#462); captured production/simulation regression scenes pass, but checked integration and live execution remain unproven. API #459 is activated with no source-quota returns in the next segment; Agent #267's actual synthesis correction remains unproven. ### Next acceptance milestone From ec6d48933ddd19e01cc7dcb6b21aa5596acdbdb6 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 13:41:54 -0400 Subject: [PATCH 468/501] docs: report current planning phase handoff blocker (#520) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8ede7644..f7b4b634 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Admission precharged the full infrastructure watchdog against active phase/day windows (API #461/#462); captured production/simulation regression scenes pass, but checked integration and live execution remain unproven. API #459 is activated with no source-quota returns in the next segment; Agent #267's actual synthesis correction remains unproven. +- Phase-end planning cancellation races the provider report and is stored as a timeout failure (API #463/#464); package-owned race and negative scenes pass, but the live phase handoff remains unproven. Detailed execution evidence belongs to Platform #520. ### Next acceptance milestone From 82f7901187d8f026fbff45742d8c4dde27ae18b1 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 13:51:42 -0400 Subject: [PATCH 469/501] docs: report current planning phase handoff blocker (#520) (#599) --- docs/agent-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8ede7644..f7b4b634 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Admission precharged the full infrastructure watchdog against active phase/day windows (API #461/#462); captured production/simulation regression scenes pass, but checked integration and live execution remain unproven. API #459 is activated with no source-quota returns in the next segment; Agent #267's actual synthesis correction remains unproven. +- Phase-end planning cancellation races the provider report and is stored as a timeout failure (API #463/#464); package-owned race and negative scenes pass, but the live phase handoff remains unproven. Detailed execution evidence belongs to Platform #520. ### Next acceptance milestone From 8ba551bec0abfdf90ec316270e4734d7e56a25d9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:13:03 -0400 Subject: [PATCH 470/501] docs: distinguish authoritative planning cancellation from failed acceptance Refs #520 and Agent #271. Preserve completed planning contribution requirements, teardown and exactly-once measured settlement. --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 101861c2..940ea3e8 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -759,7 +759,7 @@ A project passes only when all checks below are evidenced from authoritative rec ### Assignments and outputs - [ ] Every ready node creates exactly one assignment, lease, and reservation transactionally. -- [ ] Normal golden runs have no failed, returned, cancelled, duplicated, or unexplained extra node revisions. +- [ ] Normal golden runs have no failed, returned, unexpectedly cancelled, duplicated, or unexplained extra node revisions. An unfinished planning/estimating turn may be cancelled only at its authoritative phase handoff, with verified teardown and exactly-once measured settlement; it does not count as a completed contribution. - [ ] Every assignment belongs to the authoritative simulation workday, receives a simulation-compiled immutable grant, and has at most one mutable workspace; no record owns a contradictory mode. - [ ] Every completed assignment has exactly one valid general result with a truthful summary and resolvable exact refs. - [ ] Every model result retains two correctly ordered clock checks and real elapsed/token/native usage. From a2ce48f633f1fb4416c854047b60fb2b388f43b8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:16:31 -0400 Subject: [PATCH 471/501] docs: distinguish authoritative planning cancellation from failed acceptance (#600) Refs #520 and Agent #271. Preserve completed planning contribution requirements, teardown and exactly-once measured settlement. --- docs/agent-acceptance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 101861c2..940ea3e8 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -759,7 +759,7 @@ A project passes only when all checks below are evidenced from authoritative rec ### Assignments and outputs - [ ] Every ready node creates exactly one assignment, lease, and reservation transactionally. -- [ ] Normal golden runs have no failed, returned, cancelled, duplicated, or unexplained extra node revisions. +- [ ] Normal golden runs have no failed, returned, unexpectedly cancelled, duplicated, or unexplained extra node revisions. An unfinished planning/estimating turn may be cancelled only at its authoritative phase handoff, with verified teardown and exactly-once measured settlement; it does not count as a completed contribution. - [ ] Every assignment belongs to the authoritative simulation workday, receives a simulation-compiled immutable grant, and has at most one mutable workspace; no record owns a contradictory mode. - [ ] Every completed assignment has exactly one valid general result with a truthful summary and resolvable exact refs. - [ ] Every model result retains two correctly ordered clock checks and real elapsed/token/native usage. From b8947bafacae18e8c529031a7b724219ea06a100 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:24:07 -0400 Subject: [PATCH 472/501] docs: retire resolved phase cancellation blocker Refs #520. Live acting handoff succeeded; release/review/Reporter and fresh full golden remain unproven. No checklist promotion or schema change. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f7b4b634..8aeee772 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Phase-end planning cancellation races the provider report and is stored as a timeout failure (API #463/#464); package-owned race and negative scenes pass, but the live phase handoff remains unproven. Detailed execution evidence belongs to Platform #520. +- No active implementation blocker is currently observed. API #464 passed package-owned race/negative scenes and the live planning handoff; the unfinished turn retained measured usage and verified teardown. Complete execution acceptance remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 81727369..35679e6f 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs; release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; automated stopped acceptance again proves lease release, teardown and exactly-once settlement (Platform #520). +- No active implementation blocker is currently observed. Exact-decision continuation retains five approved Actor/Reviewer pairs and has admitted Releaser on the approved Writer candidate; release/review/Reporter acceptance remains unproven. Execution handoff evidence belongs to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From 2482a5ada8a5c9f931942af4e9bcb866721eaa50 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:26:29 -0400 Subject: [PATCH 473/501] docs: retire resolved phase cancellation blocker (#601) Refs #520. Live acting handoff succeeded; release/review/Reporter and fresh full golden remain unproven. No checklist promotion or schema change. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index f7b4b634..8aeee772 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Phase-end planning cancellation races the provider report and is stored as a timeout failure (API #463/#464); package-owned race and negative scenes pass, but the live phase handoff remains unproven. Detailed execution evidence belongs to Platform #520. +- No active implementation blocker is currently observed. API #464 passed package-owned race/negative scenes and the live planning handoff; the unfinished turn retained measured usage and verified teardown. Complete execution acceptance remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 81727369..35679e6f 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs; release/review/Reporter acceptance remains unproven. The current execution blocker belongs to `agent-architecture.md`; automated stopped acceptance again proves lease release, teardown and exactly-once settlement (Platform #520). +- No active implementation blocker is currently observed. Exact-decision continuation retains five approved Actor/Reviewer pairs and has admitted Releaser on the approved Writer candidate; release/review/Reporter acceptance remains unproven. Execution handoff evidence belongs to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From b4bac035153e5e7a32330cd0e82d653326cda084 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:48:44 -0400 Subject: [PATCH 474/501] docs: report fresh-workspace release review frontier Refs #520 and Agent #273. No schema/checklist promotion, failed review preserved. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8aeee772..32cc2e1b 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active implementation blocker is currently observed. API #464 passed package-owned race/negative scenes and the live planning handoff; the unfinished turn retained measured usage and verified teardown. Complete execution acceptance remains unproven (Platform #520). +- Runner-observed release verification depended on an Actor-created scratch packaging destination absent from a fresh Reviewer workspace. Agent #273/#274 replaces that dependency with ordinary current-directory packaging; owner component checks pass, but live Reviewer confirmation remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 35679e6f..f83236d0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No active implementation blocker is currently observed. Exact-decision continuation retains five approved Actor/Reviewer pairs and has admitted Releaser on the approved Writer candidate; release/review/Reporter acceptance remains unproven. Execution handoff evidence belongs to `agent-architecture.md` (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs and verified release gates on the approved Writer candidate, but paired release review and Reporter acceptance remain unproven. The fresh-workspace verification blocker belongs to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From 4807a52a6c6a71f7daf6d295a09e54ae6d6b150f Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 14:52:24 -0400 Subject: [PATCH 475/501] docs: report fresh-workspace release review frontier (#602) Refs #520 and Agent #273. No schema/checklist promotion, failed review preserved. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 8aeee772..32cc2e1b 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- No active implementation blocker is currently observed. API #464 passed package-owned race/negative scenes and the live planning handoff; the unfinished turn retained measured usage and verified teardown. Complete execution acceptance remains unproven (Platform #520). +- Runner-observed release verification depended on an Actor-created scratch packaging destination absent from a fresh Reviewer workspace. Agent #273/#274 replaces that dependency with ordinary current-directory packaging; owner component checks pass, but live Reviewer confirmation remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 35679e6f..f83236d0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- No active implementation blocker is currently observed. Exact-decision continuation retains five approved Actor/Reviewer pairs and has admitted Releaser on the approved Writer candidate; release/review/Reporter acceptance remains unproven. Execution handoff evidence belongs to `agent-architecture.md` (Platform #520). +- Exact-decision continuation retains five approved Actor/Reviewer pairs and verified release gates on the approved Writer candidate, but paired release review and Reporter acceptance remain unproven. The fresh-workspace verification blocker belongs to `agent-architecture.md` (Platform #520). ### Next acceptance milestone From 0fa964e64a94a62cc80e614aeb7174411993e66d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 15:37:42 -0400 Subject: [PATCH 476/501] docs: identify concurrent graph completion as the acceptance frontier Refs #520. API #465/#466 owns revision collision repair. Preserve unproven portable release review and Reporter boundaries; no checkbox promotion or schema changes. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 32cc2e1b..4479cb53 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Runner-observed release verification depended on an Actor-created scratch packaging destination absent from a fresh Reviewer workspace. Agent #273/#274 replaces that dependency with ordinary current-directory packaging; owner component checks pass, but live Reviewer confirmation remains unproven (Platform #520). +- Provider acceptance awaits the graph-completion repair in `agent-assignments.md`. Agent #273/#274 portable packaging is integrated and active with owner component checks; live fresh-workspace Reviewer confirmation remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index f83236d0..681ee5d0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs and verified release gates on the approved Writer candidate, but paired release review and Reporter acceptance remain unproven. The fresh-workspace verification blocker belongs to `agent-architecture.md` (Platform #520). +- Concurrent assignment completion collided with graph reconciliation on revision allocation; API #465/#466 has a real PostgreSQL regression and owner scene, but checked integration and live completion remain required. Exact-decision continuation retains five approved pairs; release review and Reporter remain unproven (Platform #520). ### Next acceptance milestone From dbea4098de0d8e3877d65d2059a174e5cdae394d Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 15:41:33 -0400 Subject: [PATCH 477/501] docs: identify concurrent graph completion as the acceptance frontier (#603) Refs #520. API #465/#466 owns revision collision repair. Preserve unproven portable release review and Reporter boundaries; no checkbox promotion or schema changes. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 32cc2e1b..4479cb53 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Runner-observed release verification depended on an Actor-created scratch packaging destination absent from a fresh Reviewer workspace. Agent #273/#274 replaces that dependency with ordinary current-directory packaging; owner component checks pass, but live Reviewer confirmation remains unproven (Platform #520). +- Provider acceptance awaits the graph-completion repair in `agent-assignments.md`. Agent #273/#274 portable packaging is integrated and active with owner component checks; live fresh-workspace Reviewer confirmation remains unproven (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index f83236d0..681ee5d0 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Exact-decision continuation retains five approved Actor/Reviewer pairs and verified release gates on the approved Writer candidate, but paired release review and Reporter acceptance remain unproven. The fresh-workspace verification blocker belongs to `agent-architecture.md` (Platform #520). +- Concurrent assignment completion collided with graph reconciliation on revision allocation; API #465/#466 has a real PostgreSQL regression and owner scene, but checked integration and live completion remain required. Exact-decision continuation retains five approved pairs; release review and Reporter remain unproven (Platform #520). ### Next acceptance milestone From dc7846e9c0c992c14acf6cf9064143e52aa02306 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 17:16:14 -0400 Subject: [PATCH 478/501] docs: record native Reporter acceptance frontier --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 4479cb53..fd664fab 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider acceptance awaits the graph-completion repair in `agent-assignments.md`. Agent #273/#274 portable packaging is integrated and active with owner component checks; live fresh-workspace Reviewer confirmation remains unproven (Platform #520). +- Native Reporter completes without an isolation transport but omits resource-closure evidence; Agent #275/#276 repairs the canonical completion output with owner scene regressions, while fresh live settlement/teardown proof remains required (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 681ee5d0..33f7b617 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -433,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. Automated DO completed two eight-role planning cycles, seven genuine estimates, external approval, and five approved Actor/Reviewer pairs. The Writer passed a genuine request-changes → revision → re-review cycle; Releaser then timed out with only 317 active seconds remaining in the one-hour workday (Platform #520). +- No full SDK golden pass. Exact-decision continuation completed release, paired approval, and Reporter with a stored exact report reference; result and Reporter guarantees pass, but the complete settlement/teardown boundary remains failed (Platform #520). ### Current active blocker -- Concurrent assignment completion collided with graph reconciliation on revision allocation; API #465/#466 has a real PostgreSQL regression and owner scene, but checked integration and live completion remain required. Exact-decision continuation retains five approved pairs; release review and Reporter remain unproven (Platform #520). +- Native Reporter closure evidence is missing; `agent-architecture.md` owns the repair. Concurrent graph completion is integrated through API #466 and no collision occurred in the completed continuation; unchanged upstream inventory and complete acceptance remain unproven (Platform #520). ### Next acceptance milestone -- Prove deadline closeout and exact-decision graph carry-forward with coded scenes, then continue the existing accepted SDK work through Releaser review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory without weakening the one-hour simulation boundary. +- Pass the focused settlement/teardown and unchanged-upstream gates after native closure repair, then run a fresh full SDK golden from proposal through six reviewed work items and closeout within the one-hour simulation boundary. ## Completion From 2e3924ff9db8634a2836ca253bc75fd5649e31f4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 17:18:54 -0400 Subject: [PATCH 479/501] docs: record native Reporter acceptance frontier (#604) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 4479cb53..fd664fab 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Provider acceptance awaits the graph-completion repair in `agent-assignments.md`. Agent #273/#274 portable packaging is integrated and active with owner component checks; live fresh-workspace Reviewer confirmation remains unproven (Platform #520). +- Native Reporter completes without an isolation transport but omits resource-closure evidence; Agent #275/#276 repairs the canonical completion output with owner scene regressions, while fresh live settlement/teardown proof remains required (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 681ee5d0..33f7b617 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -433,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No SDK golden pass. Automated DO completed two eight-role planning cycles, seven genuine estimates, external approval, and five approved Actor/Reviewer pairs. The Writer passed a genuine request-changes → revision → re-review cycle; Releaser then timed out with only 317 active seconds remaining in the one-hour workday (Platform #520). +- No full SDK golden pass. Exact-decision continuation completed release, paired approval, and Reporter with a stored exact report reference; result and Reporter guarantees pass, but the complete settlement/teardown boundary remains failed (Platform #520). ### Current active blocker -- Concurrent assignment completion collided with graph reconciliation on revision allocation; API #465/#466 has a real PostgreSQL regression and owner scene, but checked integration and live completion remain required. Exact-decision continuation retains five approved pairs; release review and Reporter remain unproven (Platform #520). +- Native Reporter closure evidence is missing; `agent-architecture.md` owns the repair. Concurrent graph completion is integrated through API #466 and no collision occurred in the completed continuation; unchanged upstream inventory and complete acceptance remain unproven (Platform #520). ### Next acceptance milestone -- Prove deadline closeout and exact-decision graph carry-forward with coded scenes, then continue the existing accepted SDK work through Releaser review, Reporter, settlement, teardown, product gates, and unchanged upstream inventory without weakening the one-hour simulation boundary. +- Pass the focused settlement/teardown and unchanged-upstream gates after native closure repair, then run a fresh full SDK golden from proposal through six reviewed work items and closeout within the one-hour simulation boundary. ## Completion From 7bd426f29e958d86b8959b105c52552817b13044 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 18:28:54 -0400 Subject: [PATCH 480/501] docs(agents): record passing focused closure without golden promotion --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index fd664fab..49ea0b41 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,11 +550,11 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Native Reporter completes without an isolation transport but omits resource-closure evidence; Agent #275/#276 repairs the canonical completion output with owner scene regressions, while fresh live settlement/teardown proof remains required (Platform #520). +- Native Reporter resource closure is repaired through Agent #275/#276 and proven by the passing package-owned continuation, including settlement/teardown and unchanged upstream. Fresh full SDK acceptance remains outstanding; historical failures are not backfilled (Platform #520). ### Next acceptance milestone -- Prove one-hour continuation through AgentKernel execution, measured accounting and teardown using package-owned scenes; see `agent-assignments.md` for the exact accepted-graph frontier. +- Prove the fresh one-hour full SDK golden through AgentKernel, measured accounting and teardown using package-owned scenes; see `agent-assignments.md` for the graph and product gates. ## Completion diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 33f7b617..2067deac 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -433,15 +433,15 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current integrated state -- No full SDK golden pass. Exact-decision continuation completed release, paired approval, and Reporter with a stored exact report reference; result and Reporter guarantees pass, but the complete settlement/teardown boundary remains failed (Platform #520). +- No full SDK golden pass. The package-owned exact-decision continuation passed release, paired approval, exact Reporter read-back, all-attempt settlement/teardown and unchanged-upstream gates; historical failed runs remain failed (Platform #520). ### Current active blocker -- Native Reporter closure evidence is missing; `agent-architecture.md` owns the repair. Concurrent graph completion is integrated through API #466 and no collision occurred in the completed continuation; unchanged upstream inventory and complete acceptance remain unproven (Platform #520). +- A fresh full SDK golden must still prove new planning/estimates, external approval, all six reviewed work items, a genuine revision cycle and the SDK product gate in one run. The passing continuation is not full acceptance (Platform #520). ### Next acceptance milestone -- Pass the focused settlement/teardown and unchanged-upstream gates after native closure repair, then run a fresh full SDK golden from proposal through six reviewed work items and closeout within the one-hour simulation boundary. +- Run the fresh full SDK golden from proposal through six reviewed work items and closeout within the one-hour simulation boundary, then API and joint acceptance only after SDK passes. ## Completion From 9001b469fa79222168d1443669f11a534f9754c9 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 19:01:21 -0400 Subject: [PATCH 481/501] docs(agents): clarify task-size confidence and honest acceptance frontier --- docs/agent-architecture.md | 4 ++-- docs/agent-assignments.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 49ea0b41..d8f5ccca 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -361,7 +361,7 @@ Planning has a minimum initial window of `planningPercent` of wall-clock duratio Provider-owned capability caps and a shared execution-provider/model cap bound every workday. Normalize active workday weights (default 1), preserve existing reservations, and redistribute idle project/class target shares only to admissible graph-ready work. Both production and simulation consume real supply. Charge active harness/model/tool time, including model-backed preparation and closeout; record infrastructure setup, queueing, and teardown separately. -Cold-start acting uses the task's maximum estimate, bounded by provider limits and available allocations. Replay the latest 20 eligible measurements within the same provider/model, capability, class, and activity, normalized by expected task duration. Successful completion targets 1.25 times observed duration with at most 10% downward adjustment per sample; expiration increases allocation by at least 25%. Other failure classes do not calibrate task duration. Insufficient viable capacity defers work without changing the graph. +Cold-start acting uses the task's maximum estimate, bounded by provider limits and available allocations. Replay the latest 20 eligible measurements within the same provider/model, capability, class, and activity, normalized by expected task duration. Successful completion targets 1.25 times observed duration with at most 10% downward adjustment per sample, weighted by the smaller expected task duration divided by the larger one; very different task sizes supply weaker evidence for reducing the current ceiling. Expiration increases allocation by at least 25%. Other failure classes do not calibrate task duration. Insufficient viable capacity defers work without changing the graph. The read-only `workday plan` operation and mutating `workday start` use the same compiler. The workday stores the applied plan rather than creating another scheduling authority. @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Native Reporter resource closure is repaired through Agent #275/#276 and proven by the passing package-owned continuation, including settlement/teardown and unchanged upstream. Fresh full SDK acceptance remains outstanding; historical failures are not backfilled (Platform #520). +- Native Reporter closure is proven by the passing continuation. Fresh SDK acting reviews then expired after dissimilar-task calibration shortened genuine maximum estimates to 18/22 seconds; SDK #347/#348 repairs reduction confidence with coded owner scenes, without a duration floor. Fresh live proof remains required (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2067deac..bf650df3 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- A fresh full SDK golden must still prove new planning/estimates, external approval, all six reviewed work items, a genuine revision cycle and the SDK product gate in one run. The passing continuation is not full acceptance (Platform #520). +- Fresh full SDK planning and external approval passed, then two acting reviews expired on over-reduced allocations; `agent-architecture.md` owns calibration repair. All six pairs, a genuine revision cycle and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). ### Next acceptance milestone From a2eb1ee80cf4b90271064cb487df848567058b76 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 20:02:09 -0400 Subject: [PATCH 482/501] docs: retain DQ paired-review evidence failure frontier Refs #520 and Agent #277. Record early successful reviews and genuine Tester revision without promoting acceptance checkboxes; retain full SDK pass requirement. --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index d8f5ccca..a15feafa 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Native Reporter closure is proven by the passing continuation. Fresh SDK acting reviews then expired after dissimilar-task calibration shortened genuine maximum estimates to 18/22 seconds; SDK #347/#348 repairs reduction confidence with coded owner scenes, without a duration floor. Fresh live proof remains required (Platform #520). +- Native Reporter closure is proven by the passing continuation. SDK #347/#348 repaired dissimilar-task calibration without a duration floor; fresh DQ Researcher/Architect reviews finished early, then Tester re-review failed because observed intentional red tests were mislabeled passing and replayed as a fatal check. Agent #277 owns the canonical paired-review evidence correction and coded regression. One fresh full SDK pass remains required (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index bf650df3..ad99ee75 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Fresh full SDK planning and external approval passed, then two acting reviews expired on over-reduced allocations; `agent-architecture.md` owns calibration repair. All six pairs, a genuine revision cycle and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). +- Fresh full SDK planning and external approval passed; DQ completed Researcher/Architect review and a genuine Tester correction, then failed Tester re-review on intentional red verification evidence. `agent-architecture.md` owns the Agent #277 repair. All six pairs, completed re-review and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). ### Next acceptance milestone From 815c6848ba68d7c8dd5cd871d1e1b4fcf0e4a525 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 20:35:36 -0400 Subject: [PATCH 483/501] docs: record automated discussion-binding acceptance frontier (#520) --- docs/agent-architecture.md | 2 +- docs/agent-assignments.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index a15feafa..98e0ff95 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -550,7 +550,7 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker -- Native Reporter closure is proven by the passing continuation. SDK #347/#348 repaired dissimilar-task calibration without a duration floor; fresh DQ Researcher/Architect reviews finished early, then Tester re-review failed because observed intentional red tests were mislabeled passing and replayed as a fatal check. Agent #277 owns the canonical paired-review evidence correction and coded regression. One fresh full SDK pass remains required (Platform #520). +- Native Reporter closure is proven by the passing continuation; SDK #347/#348 calibration and Agent #277/#278 observed-red evidence repairs are integrated. Fresh DR stopped before acting when a chat response lacked its exact invocation binding. API #468/#469 repairs a reproduced denied-admission binding defect with package-owned SQL scenes; checked staging delivery and live proof remain required. DR's missing teardown receipt remains failed evidence, not proof of a physical leak. No full SDK pass (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index ad99ee75..2ae2456d 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -437,7 +437,7 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker -- Fresh full SDK planning and external approval passed; DQ completed Researcher/Architect review and a genuine Tester correction, then failed Tester re-review on intentional red verification evidence. `agent-architecture.md` owns the Agent #277 repair. All six pairs, completed re-review and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). +- DQ proved planning, external approval and genuine Tester correction but failed re-review; that evidence repair is integrated. DR then failed chat invocation binding before acting. API #468/#469 guards binding with the exact admitted assignment; `agent-architecture.md` records delivery and receipt limitations. All six pairs, completed re-review, closeout and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). ### Next acceptance milestone From 5e7f95e3f57c5d72853610bac0b75d001cf3ce94 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 22:41:44 -0400 Subject: [PATCH 484/501] docs: record completed SDK workday and checked acceptance repair frontier --- docs/agent-intermediate-plan.md | 2 ++ docs/sdk-first-cutover-implementation-plan.md | 1 + 2 files changed, 3 insertions(+) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 0a48b6f1..6d7dd1ba 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -48,3 +48,5 @@ ## Current frontier The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. + +SDK DS completed its one-hour workday with six approved pairs, a genuine release correction/re-review and native Reporter. Full acceptance still failed on pre-model cancellation closeout and unproven packed archive inspection. Agent #281/#283, API #471 and SDK #350 are integrated into checked staging; serial managed activation and one fresh full campaign are next. Historical failures remain immutable, and no broad gate is checked from these component repairs. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 6584bcd8..29ea8030 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,6 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint +- Acceptance frontier (2026-10-01): SDK DS completed all six pairs and native Reporter, including genuine release correction/re-review, but is not a golden pass. Checked staging now integrates Agent #281/#283 pre-transport closure and archive guidance, API #471 returned phase closeout, and SDK #350 freeze-bound product/archive verification. Finish serial activation, then run one fresh one-hour SDK campaign (twenty minutes initial planning, concurrency five, simulation only). API/joint remains gated on full SDK acceptance; historical evidence and unchecked broad gates are preserved. Detailed receipts belong in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From b7683000cee41084e01aab37b598b7b57159e053 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 00:00:29 -0400 Subject: [PATCH 485/501] docs: record DT terminal proof and archive checker repair --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 6d7dd1ba..ca8cc91f 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -SDK DS completed its one-hour workday with six approved pairs, a genuine release correction/re-review and native Reporter. Full acceptance still failed on pre-model cancellation closeout and unproven packed archive inspection. Agent #281/#283, API #471 and SDK #350 are integrated into checked staging; serial managed activation and one fresh full campaign are next. Historical failures remain immutable, and no broad gate is checked from these component repairs. +SDK DT reached five approved pairs, including a genuine Tester correction/re-review, then stopped on the final release Reviewer's contract-test replay failure; it was not a timeout. The stopped-state guarantee passed leases, settlement and teardown. Separately, the Releaser exposed an SDK archive checker that incorrectly required root `types` despite valid per-export declarations. SDK #351 repairs that checker with real-manifest/actual-tarball regression and removes a redundant generator receipt already covered by full release verification. Checked staging integration and serial managed activation precede the next fresh full campaign. No full SDK pass is claimed; historical failures and unchecked broad gates remain. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 29ea8030..a62b1944 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK DS completed all six pairs and native Reporter, including genuine release correction/re-review, but is not a golden pass. Checked staging now integrates Agent #281/#283 pre-transport closure and archive guidance, API #471 returned phase closeout, and SDK #350 freeze-bound product/archive verification. Finish serial activation, then run one fresh one-hour SDK campaign (twenty minutes initial planning, concurrency five, simulation only). API/joint remains gated on full SDK acceptance; historical evidence and unchecked broad gates are preserved. Detailed receipts belong in Platform #520. +- Acceptance frontier (2026-10-01): SDK DT stopped after five approved pairs and genuine Tester correction/re-review; final release Reviewer contract replay failed, not timed out. Native stopped-state leases/settlement/teardown passed. SDK #351 repairs a separately confirmed packed per-export-types checker defect and redundant generator receipt; checked staging and serial activation precede another fresh one-hour/twenty-minute-planning/concurrency-five simulation campaign. No full SDK pass or API/joint promotion; preserve historical failures and unchecked broad gates. Detailed receipts belong in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 6cae37788872fb58e15c078566ec58178e9a684b Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 01:43:51 -0400 Subject: [PATCH 486/501] docs: record DU failure and diagnostic repair frontier (#520) --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index ca8cc91f..ef276031 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -SDK DT reached five approved pairs, including a genuine Tester correction/re-review, then stopped on the final release Reviewer's contract-test replay failure; it was not a timeout. The stopped-state guarantee passed leases, settlement and teardown. Separately, the Releaser exposed an SDK archive checker that incorrectly required root `types` despite valid per-export declarations. SDK #351 repairs that checker with real-manifest/actual-tarball regression and removes a redundant generator receipt already covered by full release verification. Checked staging integration and serial managed activation precede the next fresh full campaign. No full SDK pass is claimed; historical failures and unchecked broad gates remain. +SDK DU reached five approved pairs and a genuine Tester correction/re-review. The Releaser passed actual build, contracts, release verification, pack and archive inspection after the SDK #351 repair, but independent release Reviewer contract replay failed, not timed out. Native stopped-state leases, exactly-once settlement and teardown passed for all 58 attempts. Agent #284 retains bounded credential-redacted failed replay diagnostics through the existing receipt; the underlying SDK test failure remains unidentified. Checked staging integration and serial managed activation precede fresh managed evidence. No full SDK pass or API/joint promotion is claimed; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index a62b1944..c7029034 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK DT stopped after five approved pairs and genuine Tester correction/re-review; final release Reviewer contract replay failed, not timed out. Native stopped-state leases/settlement/teardown passed. SDK #351 repairs a separately confirmed packed per-export-types checker defect and redundant generator receipt; checked staging and serial activation precede another fresh one-hour/twenty-minute-planning/concurrency-five simulation campaign. No full SDK pass or API/joint promotion; preserve historical failures and unchecked broad gates. Detailed receipts belong in Platform #520. +- Acceptance frontier (2026-10-01): DU reached five approved pairs and genuine Tester correction/re-review; Release Actor actual build/contracts/release/pack/archive checks passed, but independent Reviewer contract replay failed, not timed out. Native stopped-state leases/exactly-once settlement/teardown passed all 58 attempts. Agent #284 repairs discarded bounded redacted replay diagnostics; the individual SDK failure remains unidentified. Checked staging and serial activation precede fresh managed evidence with unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failure history and unchecked broad gates. Detailed receipts belong in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From e554d83aa6023dde824b462e164d1ad31cd6eacc Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 05:49:28 -0400 Subject: [PATCH 487/501] docs: record DX owner repairs and full SDK acceptance frontier (#520) --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index ef276031..228c10b0 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -SDK DU reached five approved pairs and a genuine Tester correction/re-review. The Releaser passed actual build, contracts, release verification, pack and archive inspection after the SDK #351 repair, but independent release Reviewer contract replay failed, not timed out. Native stopped-state leases, exactly-once settlement and teardown passed for all 58 attempts. Agent #284 retains bounded credential-redacted failed replay diagnostics through the existing receipt; the underlying SDK test failure remains unidentified. Checked staging integration and serial managed activation precede fresh managed evidence. No full SDK pass or API/joint promotion is claimed; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353 removes duplicate standalone verification receipts while retaining actual aggregate strict build/contracts and independently measured archive approval. DX then exposed real PostgreSQL publication/completion/admission deadlocks; API #472 repairs unchanged-key lock compatibility on the existing provider, membership and session rows, with real PostgreSQL RED/GREEN regressions and monotonic accounting retained. Agent #288 preserves exact executor closure on the existing durable lease claim through failed completion and restart recovery, without inventing missing teardown. Finish checked staging delivery and serial supported runtime activation, then run one fresh package-owned full SDK campaign with unchanged policy. Historical freezes, failed stopped receipts and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index c7029034..147ee7d8 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): DU reached five approved pairs and genuine Tester correction/re-review; Release Actor actual build/contracts/release/pack/archive checks passed, but independent Reviewer contract replay failed, not timed out. Native stopped-state leases/exactly-once settlement/teardown passed all 58 attempts. Agent #284 repairs discarded bounded redacted replay diagnostics; the individual SDK failure remains unidentified. Checked staging and serial activation precede fresh managed evidence with unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failure history and unchecked broad gates. Detailed receipts belong in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353 repairs duplicate verification receipts without removing aggregate strict build/contracts or actual independent archive approval. DX exposed real PostgreSQL publication/completion/admission deadlocks; API #472 repairs existing unchanged-key serialization locks, and Agent #288 preserves exact executor closure through failed completion/restart on its existing lease claim. Checked staging and serial activation precede one fresh package-owned full SDK campaign with unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failure history and unchecked broad gates. Detailed receipts belong in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From a35e71a676ecc88d8b100c2eead91c24b9a919c8 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 06:35:52 -0400 Subject: [PATCH 488/501] Record checked SDK diagnostic safety repairs and pending live gate --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 228c10b0..2b31b02e 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353 removes duplicate standalone verification receipts while retaining actual aggregate strict build/contracts and independently measured archive approval. DX then exposed real PostgreSQL publication/completion/admission deadlocks; API #472 repairs unchanged-key lock compatibility on the existing provider, membership and session rows, with real PostgreSQL RED/GREEN regressions and monotonic accounting retained. Agent #288 preserves exact executor closure on the existing durable lease claim through failed completion and restart recovery, without inventing missing teardown. Finish checked staging delivery and serial supported runtime activation, then run one fresh package-owned full SDK campaign with unchanged policy. Historical freezes, failed stopped receipts and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict build/contracts and independently measured archive approval. API #472 and Agent #288 are checked, merged and active: existing-row lock compatibility and durable executor closeout are repaired. DY then failed credential-output quarantine, not timeout; its stopped scene passed all 17 attempt closures. Agent #290 redacts known issued/rotated credentials from persisted diagnostic events without rewriting raw validation evidence or substantive results. Deployment #808 preserves identical quarantine coverage with credential-free static field diagnosis; DY's exact historical matching field remains unknown. Both repairs are checked and merged; serial runtime activation precedes one fresh full SDK campaign with unchanged policy. Historical failures and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 147ee7d8..1f179e5b 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353 repairs duplicate verification receipts without removing aggregate strict build/contracts or actual independent archive approval. DX exposed real PostgreSQL publication/completion/admission deadlocks; API #472 repairs existing unchanged-key serialization locks, and Agent #288 preserves exact executor closure through failed completion/restart on its existing lease claim. Checked staging and serial activation precede one fresh package-owned full SDK campaign with unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failure history and unchecked broad gates. Detailed receipts belong in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #472 and Agent #288 are checked, merged and active. DY failed credential-output quarantine, not timeout; stopped closure passed all 17 attempts. Agent #290 repairs raw diagnostic-event credential disclosure while preserving substantive-result quarantine; Deployment #808 adds safe static quarantine diagnosis without changing matching coverage. Both owner repairs are checked and merged, with serial activation before one fresh full SDK campaign under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failures and unchecked broad gates. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 75db051c99c3c801b183cf6e01ee1d074368a24c Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 07:43:07 -0400 Subject: [PATCH 489/501] docs: record SDK DZ boundary and reviewed allocation repair --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 2b31b02e..d6b08c0a 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict build/contracts and independently measured archive approval. API #472 and Agent #288 are checked, merged and active: existing-row lock compatibility and durable executor closeout are repaired. DY then failed credential-output quarantine, not timeout; its stopped scene passed all 17 attempt closures. Agent #290 redacts known issued/rotated credentials from persisted diagnostic events without rewriting raw validation evidence or substantive results. Deployment #808 preserves identical quarantine coverage with credential-free static field diagnosis; DY's exact historical matching field remains unknown. Both repairs are checked and merged; serial runtime activation precedes one fresh full SDK campaign with unchanged policy. Historical failures and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict build/contracts and independently measured archive approval. API #472, Agent #288/#290 and Deployment #808 are checked, merged and active; credential quarantine remains intact. DZ completed 50 assignments and three approved pairs, then Engineer timed out on a fresh 150/180-second estimate with no calibration history applied. Its stopped gate passed all 52 attempt closures. API #474 / PR #475 repairs the proven loss of approved Actor measurements when graph retirement changes mutable node state: existing exact result, validated paired approval and retained pair-edge custody now govern historical success. Rejected or unreviewed work stays excluded; no estimates, caps, schemas or policy are overridden. The checked staging merge proceeds through serial activation and one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Historical failures and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 1f179e5b..b26fe0cd 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #472 and Agent #288 are checked, merged and active. DY failed credential-output quarantine, not timeout; stopped closure passed all 17 attempts. Agent #290 repairs raw diagnostic-event credential disclosure while preserving substantive-result quarantine; Deployment #808 adds safe static quarantine diagnosis without changing matching coverage. Both owner repairs are checked and merged, with serial activation before one fresh full SDK campaign under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass or API/joint promotion; preserve immutable failures and unchecked broad gates. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #472, Agent #288/#290 and Deployment #808 are checked, merged and active without weakening quarantine. DZ ended after 50 completions and an Engineer timeout on a fresh 150/180-second estimate; stopped closure passed all 52 attempts. API #474 / PR #475 is checked and merged: approved Actor measurements survive graph retirement through existing immutable exact-result/paired-review custody, while rejected and unreviewed work stays excluded. Serial API activation precedes one fresh full SDK campaign under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy; no manual seconds, history reset, schema or cap changes. No full SDK pass or API/joint promotion; preserve immutable failures and unchecked broad gates. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 884e4f5dd273fe7beb1582b5bc76a71df4c18bfb Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 08:39:59 -0400 Subject: [PATCH 490/501] docs: record scoped planning repair before SDK EB (#520) --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index d6b08c0a..2a4eebc4 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict build/contracts and independently measured archive approval. API #472, Agent #288/#290 and Deployment #808 are checked, merged and active; credential quarantine remains intact. DZ completed 50 assignments and three approved pairs, then Engineer timed out on a fresh 150/180-second estimate with no calibration history applied. Its stopped gate passed all 52 attempt closures. API #474 / PR #475 repairs the proven loss of approved Actor measurements when graph retirement changes mutable node state: existing exact result, validated paired approval and retained pair-edge custody now govern historical success. Rejected or unreviewed work stays excluded; no estimates, caps, schemas or policy are overridden. The checked staging merge proceeds through serial activation and one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Historical failures and unchecked broad gates remain; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict verification and independent archive approval; API #474 immutable reviewed-history calibration, Agent #288/#290 and Deployment #808 are merged and active without weakening quarantine. EA completed its planning/estimate/chat boundary and exact external approval, then failed omitted citations in a redundant fourth planning round; its stopped gate passed all 46 attempt closures. API #476 / PR #477 stops regenerating planning after explicit proposal/decision scope leaves the existing active inventory. Open/incomplete scope, unscoped discovery, the initial phase window and citation validation remain unchanged; strict verification and 107 component plus six selection steps pass. Checked staging delivery and serial activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Preserve historical failures and unchecked broad gates; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index b26fe0cd..9cc4e355 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #472, Agent #288/#290 and Deployment #808 are checked, merged and active without weakening quarantine. DZ ended after 50 completions and an Engineer timeout on a fresh 150/180-second estimate; stopped closure passed all 52 attempts. API #474 / PR #475 is checked and merged: approved Actor measurements survive graph retirement through existing immutable exact-result/paired-review custody, while rejected and unreviewed work stays excluded. Serial API activation precedes one fresh full SDK campaign under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy; no manual seconds, history reset, schema or cap changes. No full SDK pass or API/joint promotion; preserve immutable failures and unchecked broad gates. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #474 reviewed-history calibration, Agent #288/#290 and Deployment #808 are active without weakening quarantine. EA failed missing citations in redundant post-acceptance planning; stopped closure passed all 46 attempts. API #476 / PR #477 stops terminal explicit-scope planning regeneration while preserving open/incomplete scope, unscoped discovery, phase timing and fail-closed validation. Strict verification and 107 component plus six selection steps pass. Checked staging delivery and serial activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 3badcb0d320073f4b511487f196a223e8c91b3c0 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 09:17:32 -0400 Subject: [PATCH 491/501] Record checked broker repair and full SDK acceptance frontier --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 2a4eebc4..8dfde8b3 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353 retains aggregate strict verification and independent archive approval; API #474 immutable reviewed-history calibration, Agent #288/#290 and Deployment #808 are merged and active without weakening quarantine. EA completed its planning/estimate/chat boundary and exact external approval, then failed omitted citations in a redundant fourth planning round; its stopped gate passed all 46 attempt closures. API #476 / PR #477 stops regenerating planning after explicit proposal/decision scope leaves the existing active inventory. Open/incomplete scope, unscoped discovery, the initial phase window and citation validation remain unchanged; strict verification and 107 component plus six selection steps pass. Checked staging delivery and serial activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Preserve historical failures and unchecked broad gates; API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353, API #474/#476, Agent #288/#290 and Deployment #808 are checked and active without weakening validation or quarantine. EB failed during planning with two local tool-channel connection resets; its stopped gate passed all 27 attempt closures. The broker did not restart, but the historical failed HTTP operation was not retained. Agent #292 / PR #293 isolates the existing broker control requests from pooled Unix sockets without retrying dequeue or response delivery. Real-socket RED/GREEN, 352 strict tests and 87 coded owner steps pass. Checked staging delivery and supported serial provider activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Prove terminal scoped-planning behavior and historical allocation use in that campaign; preserve all failure history and unchecked broad gates. API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 9cc4e355..3b7f97a9 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353 retains aggregate strict verification and independent archive approval; API #474 reviewed-history calibration, Agent #288/#290 and Deployment #808 are active without weakening quarantine. EA failed missing citations in redundant post-acceptance planning; stopped closure passed all 46 attempts. API #476 / PR #477 stops terminal explicit-scope planning regeneration while preserving open/incomplete scope, unscoped discovery, phase timing and fail-closed validation. Strict verification and 107 component plus six selection steps pass. Checked staging delivery and serial activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. No full SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353, API #474/#476, Agent #288/#290 and Deployment #808 are checked and active. EB failed planning tool-channel resets; stopped closure passed all 27 attempts. The broker did not restart; the exact historical HTTP operation remains unknown. Agent #292 / PR #293 isolates existing Unix control connections without replay, with real-socket RED/GREEN, 352 strict tests and 87 coded owner steps passing. Checked staging delivery and supported serial provider activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Terminal scoped planning and historical allocation require live proof. No full SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 531c5b082407ecaa647aae9aaed89b2af879a8ae Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 09:52:51 -0400 Subject: [PATCH 492/501] docs: record SDK source-custody repair frontier (#520) --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 8dfde8b3..b285ca32 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353, API #474/#476, Agent #288/#290 and Deployment #808 are checked and active without weakening validation or quarantine. EB failed during planning with two local tool-channel connection resets; its stopped gate passed all 27 attempt closures. The broker did not restart, but the historical failed HTTP operation was not retained. Agent #292 / PR #293 isolates the existing broker control requests from pooled Unix sockets without retrying dequeue or response delivery. Real-socket RED/GREEN, 352 strict tests and 87 coded owner steps pass. Checked staging delivery and supported serial provider activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Prove terminal scoped-planning behavior and historical allocation use in that campaign; preserve all failure history and unchecked broad gates. API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. SDK #353, API #474/#476, Agent #288/#290/#292 and Deployment #808 are checked and active without weakening validation, quarantine or no-replay custody. EB stopped closure passed all 27 attempts; its historical tool-reset cause remains unproven. EC and EC-r2 failed native preflight before admission: a calibrated timeout, then a disappearing source pin, both with verified teardown. API #478 / PR #479 guards the existing admission-context initialization with its existing reservation token and pending/unleased state. Real-SQL RED/GREEN and migrated PostgreSQL stale-admission replay prove preservation without duplicate charges; strict tests and coded owner steps pass. Checked staging delivery and supported serial API activation precede one fresh full SDK gate under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Prove terminal scoped planning, historical allocation and every full gate there; preserve immutable failure history and unchecked broad gates. API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 3b7f97a9..3584b7dc 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353, API #474/#476, Agent #288/#290 and Deployment #808 are checked and active. EB failed planning tool-channel resets; stopped closure passed all 27 attempts. The broker did not restart; the exact historical HTTP operation remains unknown. Agent #292 / PR #293 isolates existing Unix control connections without replay, with real-socket RED/GREEN, 352 strict tests and 87 coded owner steps passing. Checked staging delivery and supported serial provider activation precede one fresh full SDK campaign under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Terminal scoped planning and historical allocation require live proof. No full SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): SDK #353, API #474/#476, Agent #288/#290/#292 and Deployment #808 are checked and active. EB stopped closure passed all 27 attempts; its historical tool-reset cause remains unproven. EC/EC-r2 failed native preflight before admission, with verified teardown. API #478 / PR #479 preserves admitted source custody using the existing reservation token and pending/unleased initialization guard; real-SQL RED/GREEN and migrated PostgreSQL stale-admission replay pass without duplicate charges. Checked staging delivery and supported serial API activation precede one fresh full SDK gate under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Terminal scoped planning, historical allocation and all full gates require live proof. No SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From d8bf71d265b4da33236a77560fca7ce0cf4c0159 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 10:54:04 -0400 Subject: [PATCH 493/501] docs: record scoped planning proof and source-trace acceptance frontier --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index b285ca32..51ff109d 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -Full SDK acceptance remains unpassed. SDK #353, API #474/#476, Agent #288/#290/#292 and Deployment #808 are checked and active without weakening validation, quarantine or no-replay custody. EB stopped closure passed all 27 attempts; its historical tool-reset cause remains unproven. EC and EC-r2 failed native preflight before admission: a calibrated timeout, then a disappearing source pin, both with verified teardown. API #478 / PR #479 guards the existing admission-context initialization with its existing reservation token and pending/unleased state. Real-SQL RED/GREEN and migrated PostgreSQL stale-admission replay prove preservation without duplicate charges; strict tests and coded owner steps pass. Checked staging delivery and supported serial API activation precede one fresh full SDK gate under the unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Prove terminal scoped planning, historical allocation and every full gate there; preserve immutable failure history and unchecked broad gates. API/joint acceptance stays gated. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): API #478 is checked and active. ED proved source custody and completed scoped planning without a fourth post-acceptance round or early acting, then exhausted the unchanged bounded Researcher review cycle on source-trace evidence; stopped closure passed all 46 attempts. Agent #294 / PR #295 shares the existing source-evidence instruction across content Actors, preserving independent review and observed-source limits. Strict tests, owner scene and required PR checks pass; supported serial sandbox activation/readback precedes one fresh full SDK gate under unchanged canonical objectives, one-hour/twenty-minute planning, concurrency five and model/cap policy. Full SDK and historical allocation proof remain pending; no API/joint promotion, manual seconds, history reset, schema or cap changes. Immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 3584b7dc..3126ac42 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -- Acceptance frontier (2026-10-01): SDK #353, API #474/#476, Agent #288/#290/#292 and Deployment #808 are checked and active. EB stopped closure passed all 27 attempts; its historical tool-reset cause remains unproven. EC/EC-r2 failed native preflight before admission, with verified teardown. API #478 / PR #479 preserves admitted source custody using the existing reservation token and pending/unleased initialization guard; real-SQL RED/GREEN and migrated PostgreSQL stale-admission replay pass without duplicate charges. Checked staging delivery and supported serial API activation precede one fresh full SDK gate under unchanged one-hour/twenty-minute-planning/concurrency-five simulation policy. Terminal scoped planning, historical allocation and all full gates require live proof. No SDK pass, API/joint promotion, manual seconds, history reset, schema or cap changes; immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. API #478 is checked and active; ED preserved source custody and completed scoped planning without a fourth post-acceptance round or early acting. ED then exhausted the unchanged bounded Researcher review cycle on source-trace evidence; stopped closure passed all 46 attempts. Agent #294 / PR #295 shares the existing negative-source-evidence instruction across content Actors: trace actual parsing, validation and serialization, distinguish declared intent or desired policy from observed implementation, and report authorized-source limits. Strict tests, the coded owner scene and required PR checks pass; supported serial sandbox activation/readback precedes one fresh full SDK gate. Keep canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and review allowances unchanged. Historical failures remain immutable; full SDK, historical allocation and API/joint gates remain open. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 8cc9c3971720f77bb852a39010fbb68c80c065e4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 11:58:02 -0400 Subject: [PATCH 494/501] Record runner test-first repair acceptance frontier --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 51ff109d..614ebaed 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -- Acceptance frontier (2026-10-01): API #478 is checked and active. ED proved source custody and completed scoped planning without a fourth post-acceptance round or early acting, then exhausted the unchanged bounded Researcher review cycle on source-trace evidence; stopped closure passed all 46 attempts. Agent #294 / PR #295 shares the existing source-evidence instruction across content Actors, preserving independent review and observed-source limits. Strict tests, owner scene and required PR checks pass; supported serial sandbox activation/readback precedes one fresh full SDK gate under unchanged canonical objectives, one-hour/twenty-minute planning, concurrency five and model/cap policy. Full SDK and historical allocation proof remain pending; no API/joint promotion, manual seconds, history reset, schema or cap changes. Immutable failures and unchecked broad gates remain. Detailed evidence belongs in Platform #520. +- Acceptance frontier (2026-10-01): API #478 and Agent #294 are checked and active. EE proved the shared source-trace guidance through Researcher and Architect paired approvals, preserved source custody and scoped planning, then failed when the runner treated an expected red test-first replay as an assignment failure. Stopped closure passed. Agent #296 / PR #297 reuses the existing test-first scope for actual assertion-failing runner observations, retaining FAILED checks, measured output and independent dispositions; ordinary, setup and resource failures remain fail-closed. Strict tests and the coded owner scene pass; checked delivery and supported serial activation/readback precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Full SDK and historical allocation proof remain pending; no API/joint promotion, manual seconds, schema, cap or history changes. Detailed immutable evidence belongs in Platform #520; broad gates remain unchecked. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index 3126ac42..a96460e8 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -Full SDK acceptance remains unpassed. API #478 is checked and active; ED preserved source custody and completed scoped planning without a fourth post-acceptance round or early acting. ED then exhausted the unchanged bounded Researcher review cycle on source-trace evidence; stopped closure passed all 46 attempts. Agent #294 / PR #295 shares the existing negative-source-evidence instruction across content Actors: trace actual parsing, validation and serialization, distinguish declared intent or desired policy from observed implementation, and report authorized-source limits. Strict tests, the coded owner scene and required PR checks pass; supported serial sandbox activation/readback precedes one fresh full SDK gate. Keep canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and review allowances unchanged. Historical failures remain immutable; full SDK, historical allocation and API/joint gates remain open. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. API #478 and Agent #294 are checked and active; EE proved shared runtime source-trace guidance through Researcher and Architect paired approvals, preserved source custody and completed scoped planning, then failed on actual runner replay of expected test-first assertion failures. Stopped closure passed. Agent #296 / PR #297 reuses the existing test-first classification for runner observations: FAILED status, actual output and independent dispositions are retained; ordinary implementation/release, setup and resource failures remain fail-closed. Strict tests and the coded owner scene pass; checked staging delivery and supported serial activation/readback precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Historical failures remain immutable; full SDK, historical allocation and API/joint gates remain open. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From 67be32135a015306e94270eb9ab5c0eea6e11528 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 13:21:14 -0400 Subject: [PATCH 495/501] Record EF deadline boundary and bounded canonical-work repair --- docs/agent-intermediate-plan.md | 2 +- docs/sdk-first-cutover-implementation-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agent-intermediate-plan.md b/docs/agent-intermediate-plan.md index 614ebaed..eec52fca 100644 --- a/docs/agent-intermediate-plan.md +++ b/docs/agent-intermediate-plan.md @@ -49,4 +49,4 @@ The guest-contract prerequisite is proven, but the executable regression gate remains open. Full acceptance remains governed exclusively by `agent-acceptance.md`; no golden pass is claimed. Detailed defects, component receipts, and remaining catalog gaps belong in Platform Issue #520. -- Acceptance frontier (2026-10-01): API #478 and Agent #294 are checked and active. EE proved the shared source-trace guidance through Researcher and Architect paired approvals, preserved source custody and scoped planning, then failed when the runner treated an expected red test-first replay as an assignment failure. Stopped closure passed. Agent #296 / PR #297 reuses the existing test-first scope for actual assertion-failing runner observations, retaining FAILED checks, measured output and independent dispositions; ordinary, setup and resource failures remain fail-closed. Strict tests and the coded owner scene pass; checked delivery and supported serial activation/readback precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Full SDK and historical allocation proof remain pending; no API/joint promotion, manual seconds, schema, cap or history changes. Detailed immutable evidence belongs in Platform #520; broad gates remain unchecked. +- Acceptance frontier (2026-10-01): Agent #296 is checked and active. EF completed five approved pairs and a genuine Tester correction/re-review; the release Actor passed release verification, packing and archive inspection. The final release Reviewer exhausted the original workday boundary with only 39 seconds available, so full SDK acceptance remains failed. Agent #298 / PR #299 removes redundant discovery of already-materialized exact context and separate builds already owned by aggregate verification; missing exact refs, required predecessor read-back, independent review and runner replay remain mandatory. Strict tests and the coded owner scene pass; checked staging and serial activation precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Historical failures remain immutable; no full SDK or API/joint promotion, manual seconds, schema or cap changes. Detailed evidence belongs in Platform #520; broad gates remain unchecked. diff --git a/docs/sdk-first-cutover-implementation-plan.md b/docs/sdk-first-cutover-implementation-plan.md index a96460e8..4bb50982 100644 --- a/docs/sdk-first-cutover-implementation-plan.md +++ b/docs/sdk-first-cutover-implementation-plan.md @@ -12,7 +12,7 @@ Hosted deployment, unscoped `trsd release`, and production promotion remain fail ## Current checkpoint -Full SDK acceptance remains unpassed. API #478 and Agent #294 are checked and active; EE proved shared runtime source-trace guidance through Researcher and Architect paired approvals, preserved source custody and completed scoped planning, then failed on actual runner replay of expected test-first assertion failures. Stopped closure passed. Agent #296 / PR #297 reuses the existing test-first classification for runner observations: FAILED status, actual output and independent dispositions are retained; ordinary implementation/release, setup and resource failures remain fail-closed. Strict tests and the coded owner scene pass; checked staging delivery and supported serial activation/readback precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Historical failures remain immutable; full SDK, historical allocation and API/joint gates remain open. Detailed evidence belongs in Platform #520. +Full SDK acceptance remains unpassed. Agent #296 is checked and active; EF proved five approved pairs, a genuine Tester correction/re-review and the release Actor's full verifier, packing and archive checks. Final release review exhausted the unchanged workday boundary with only 39 seconds available. Agent #298 / PR #299 removes duplicate materialized-context discovery and aggregate-owned builds in the existing canonical prompt, preserving missing exact-ref reads, required predecessor read-back, independent review and runner replay. Strict tests and the coded owner scene pass; checked staging and serial activation precede one fresh full SDK gate. Canonical objectives, one-hour/twenty-minute planning, concurrency five, model/cap policy and fresh review allowances stay unchanged. Historical failures remain immutable; full SDK, historical allocation and API/joint gates remain open. Detailed evidence belongs in Platform #520. - Updated: 2026-08-23 - Active gate: Gate 2 prerequisite — Unified seed and capacity-provider battery cutover - State: `in_progress` From c2d88834e8dc6f78ff7a088f4f224ac097f31dc4 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 14:47:34 -0400 Subject: [PATCH 496/501] fix(acceptance): supply exact release receipts and honest research review challenge --- docs/agent-acceptance.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/agent-acceptance.md b/docs/agent-acceptance.md index 940ea3e8..35a7af2d 100644 --- a/docs/agent-acceptance.md +++ b/docs/agent-acceptance.md @@ -303,14 +303,16 @@ The source issue is evidence for choosing the work. The golden proposal below is | Work item | Project-specific objective and expected output | |---|---| -| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. For each prohibited caller-authored field, distinguish its absence at the SDK request boundary from any existing API-owned receipt or path evidence; cite the actual source location of each finding rather than implying every field is an SDK intent export. | +| Researcher | Trace `WorkdayIntent`, `ControlPlaneClient.invoke`, `workdays.plan`, `workdays.schedules.create`, both generated `--decision` descriptors, and preflight receipt declarations with exact source refs. For each prohibited caller-authored field, distinguish its absence at the SDK request boundary from any existing API-owned receipt or path evidence; cite the actual source location of each finding rather than implying every field is an SDK intent export. On the initial acting attempt, publish a real preliminary finding with only the exact `WorkdayIntent` and `ControlPlaneClient.invoke` citations, marking operation bindings, generated descriptors, and per-field provenance explicitly pending. Do not claim those missing findings or full criterion coverage. On a later correction attempt, address the actual paired Reviewer findings and supply all original research criteria using exact source evidence. | | Architect | Publish SDK architecture Knowledge associated with the existing SDK Core book (`sdk-core`, `books/sdk-core.md`). Define one normalization/strict-validation function at the SDK request boundary, generated descriptor bindings, SDK serialization versus API digest/persistence ownership, and all four prohibited fields. Preserve separate `planningOnly`, `proposalIds`, `agentSelection`, `allocation`, governed proposal `executionPlan`, and API-derived capacity provenance. | | Tester | Commit focused SDK tests that fail for a missing behavior on the frozen base: trim IDs; reject empty, explicit-empty and duplicate-after-trim IDs; sort in case-sensitive Unicode code-point order; prove permuted selections produce identical outbound JSON bytes through `ControlPlaneClient.invoke` with mock transport; prove omitted IDs preserve each `planningOnly` state. Check one repeated/CSV `--decision` binding in each generated command descriptor, without treating CLI parser execution as SDK acceptance. Pass each of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` through both direct workday intent and nested schedule intent request shapes; assert each SDK call throws before the mock transport is invoked, so permissive schema parsing cannot silently discard it. Assert the SDK computes neither digest; API digest incorporation and persisted capacity provenance are outside this SDK test. | | Engineer | Implement the single SDK `WorkdayIntent` normalization/strict-validation function and invoke it from `ControlPlaneClient.invoke` for `workdays.plan` and nested `workdays.schedules.create` before body parsing and JSON serialization. Trim, reject empty/duplicate IDs and forbidden caller-authored fields, sort case-sensitive Unicode code points, and preserve omitted-ID planning behavior and the separate `proposalIds`, `agentSelection`, and `allocation` controls. Generate each command descriptor with one repeated/CSV `--decision` binding. Do not compute SDK digests or alter governed `executionPlan` or API-derived capacity provenance. | | Technical Writer | Update SDK API/reference examples for descriptor-level repeated `--decision` selection, normalized outbound intent, omission with both `planningOnly` states, API-only digest/persistence ownership, and the four prohibited caller-authored fields. | -| Releaser | Build, run contract/release verification, pack locally, inspect exports/types, and produce an unpushed local candidate. | +| Releaser | On the exact unpushed local candidate, run the public `npm run release:verify` aggregate, `npm pack`, and `npm run standards:acceptance -- --archive .tgz` using the actual current-directory archive. Retain each measured command receipt. The aggregate owns strict build, standards generation/acceptance, and the full contract/release suite; do not duplicate those subordinate commands. Inspect exports/types through the public archive command, not an internal script alias. | -Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of all four prohibited caller fields, and separate API-owned receipt/path evidence where it exists; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary normalization and validation path, one repeatable/CSV `--decision` binding in each generated descriptor, rejection of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as caller input, preservation of `planningOnly`, `proposalIds`, `agentSelection`, and `allocation`, and the boundary between SDK serialization, governed proposal `executionPlan`, and API digest/persistence and capacity provenance; Tester commits failing-on-base SDK tests for trimming, empty and explicit-empty selection rejection, duplicate-after-trim rejection, case-sensitive Unicode code-point ordering, byte-identical outbound JSON for permuted selections through both request shapes, both omitted-ID `planningOnly` states, both descriptor bindings, pre-transport rejection of each prohibited caller field through direct `workdays.plan` and nested `workdays.schedules.create`, and absence of SDK-computed digests; Engineer implements those same normalization, descriptor, omission, and per-field rejection behaviors through one strict SDK path for direct and generated-operation calls without computing API digests or changing governed `executionPlan` or API-derived capacity provenance; Technical Writer commits SDK reference examples showing both generated descriptors, normalized outbound selections, omission with `planningOnly: false` and `planningOnly: true`, API-only digest/persistence ownership, and all four prohibited caller-authored fields; Releaser builds, tests, packs, inspects, and reports an unpushed candidate. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. +Each Actor is reviewed against its own deliverable: Researcher supplies exact SDK source refs for `WorkdayIntent`, `ControlPlaneClient.invoke`, both operation bindings, request-boundary absence of all four prohibited caller fields, and separate API-owned receipt/path evidence where it exists; Architect publishes SDK Core Knowledge at `books/sdk-core.md` defining one strict request-boundary normalization and validation path, one repeatable/CSV `--decision` binding in each generated descriptor, rejection of `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` as caller input, preservation of `planningOnly`, `proposalIds`, `agentSelection`, and `allocation`, and the boundary between SDK serialization, governed proposal `executionPlan`, and API digest/persistence and capacity provenance; Tester commits failing-on-base SDK tests for trimming, empty and explicit-empty selection rejection, duplicate-after-trim rejection, case-sensitive Unicode code-point ordering, byte-identical outbound JSON for permuted selections through both request shapes, both omitted-ID `planningOnly` states, both descriptor bindings, pre-transport rejection of each prohibited caller field through direct `workdays.plan` and nested `workdays.schedules.create`, and absence of SDK-computed digests; Engineer implements those same normalization, descriptor, omission, and per-field rejection behaviors through one strict SDK path for direct and generated-operation calls without computing API digests or changing governed `executionPlan` or API-derived capacity provenance; Technical Writer commits SDK reference examples showing both generated descriptors, normalized outbound selections, omission with `planningOnly: false` and `planningOnly: true`, API-only digest/persistence ownership, and all four prohibited caller-authored fields; Releaser retains measured passing receipts for exactly `npm run release:verify`, `npm pack`, and `npm run standards:acceptance -- --archive .tgz` on the exact unpushed candidate, with the actual current-directory archive inspected for export/type identity. The paired Reviewer must independently replay those public commands against the same candidate; lower-level aliases and narrative claims do not satisfy these receipts. The integrated-candidate gates below apply to the final candidate, not each earlier Actor workspace. Generated Reviewers give actionable findings against these exact work-item boundaries; no decision is forced. + +The preliminary Researcher artifact is a controlled, truthful negative input for the existing revision check, not an accepted final deliverable. Its full research criterion is unchanged. Reviewers inspect the actual first and corrected artifacts against that criterion; neither a finding nor an approval is prescribed or manufactured. A correction counts only after a real request-changes result, a later Actor contribution addressing its actual findings, and a separate later approval. Researcher remains independent of the engineering branch, so this exercise adds no dependency, estimate, allowance, or work item. Required acceptance for the final integrated SDK candidate: selected IDs are trimmed, nonempty, unique after trimming, and sorted in ascending case-sensitive Unicode code-point order. Mock transport proves different input orders yield identical outbound JSON bytes for `workdays.plan` and nested `workdays.schedules.create`; omission preserves each `planningOnly` state. Both generated command descriptors declare one repeatable/CSV `--decision` binding; CLI parser/executor behavior is tested in the CLI campaign. Direct SDK and generated-operation calls reject caller-authored `executionPlanId`, `capacityPlanId`, `executionInputId`, and `demandSetId` before permissive parsing; the fields were not SDK exports to delete. The SDK computes neither `intentDigest` nor `preflightDigest`; API digest incorporation and persisted capacity provenance are tested in the API campaign. Preserve `proposalIds`, `agentSelection`, `planningOnly`, `allocation`, governed proposal `executionPlan`, and API-owned capacity provenance as distinct authorities. Researcher → Reviewer remains independent of Architect → Tester → Engineer → Technical Writer → Releaser. From 1e32309db9ada3954c1634220e557b4dc5140ba3 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 21:30:46 -0400 Subject: [PATCH 497/501] docs: require complete automated coverage and YAML handler ownership --- AGENTS.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 5ee82bd2..9339d317 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,24 @@ # Platform workspace guidance +## CRITICAL: complete automated test coverage + +Every behavior, contract, state transition, failure path, and edge case must have automated unit, integration, and scene/guarantee-based acceptance coverage. This is mandatory for all projects, especially the capacity-provider and agent system. A behavior without all three layers is an unresolved delivery gap, not completed work. + +- Unit tests must prove exact outputs, validation, invariants, and boundary conditions. Cover valid and invalid inputs, missing/empty/malformed values, authorization denial, stale or moved refs, and every named prohibited field. +- Integration tests must exercise the real owning components and their public boundaries: handlers, provider/kernel execution, APIs, persistence, tools, and downstream consumers. Mocks, string assertions, compilation, or call-order checks alone are not integration proof. +- Coded scenes and guarantees must prove production-shaped end-to-end outcomes: exact governed artifacts and read-back, independent verification, actual usage, exactly-once settlement, and durable teardown. Use the project's existing native acceptance harness and respect package ownership; do not put TreeSeed-specific policy into product-neutral packages. +- Cover duplicate and concurrent execution, idempotency, partial failure, interruption, retry, resume, cancellation, expiry, provider/tool/subprocess errors, unsafe commands, and cleanup without residue. Preserve failed observations; do not fabricate dispositions, usage, citations, receipts, or passing replays. +- For every defect, first add a focused regression that reproduces the failure, then add or strengthen the corresponding integration and scene/guarantee cases. Fix the earliest owning contract. Retain previously covered behavior and all historical failed evidence. +- Never weaken assertions, remove negative cases, narrow acceptance criteria, disable type checks, extend deadlines, increase allowances, or relabel failures as passes to get green results. An unexpected agent timeout is a fatal architecture defect: agents must check authoritative remaining time frequently, reserve verification/closeout time, and produce authorized continuation proposals for unfinished work before the original deadline. +- Delivery requires passing evidence at all three layers on the exact candidate. Missing environments, credentials, skipped tests, or blocked layers remain explicitly unproven. Component passes, suite totals, line coverage, and process completion never substitute for full semantic acceptance. +- Keep the behavior-to-unit/integration/scene mapping and exact command, commit, run, and artifact evidence in the existing Issue body and Actions artifacts. Reproduce failures with cheap focused tests before another expensive activation or full campaign; batch known fixes, inspect failed jobs, and reuse only unchanged immutable evidence. No duplicate campaigns or new coverage side channels. + +## Agent configuration and handler ownership + +When this project defines or consumes agents, agent identity, task instructions, prompts, capabilities, permissions, parameters, and activity profiles must be governed YAML configuration. Adding or renaming an agent using existing handlers must not require provider, guest, kernel, or scheduler code changes. Do not hardcode named-role configuration in shared runtime code; shared rules must apply to any configured agent. + +Task-specific executable code belongs in the configured handler. Reuse existing class-based handlers and exact profile bindings; new coded functionality may require a pinned handler, but not a parallel dispatch path or duplicated policy. Test arbitrary YAML-defined agents, renamed identities, handler selection, changed prompts/parameters, denied permissions, and unknown/duplicate handlers through unit, real integration, and coded acceptance cases. + This is the public TreeSeed installer and integration workspace. Preserve independent package builds and route infrastructure changes through SDK reconciliation and `trsd`. Market and Market API are first-party portfolio projects governed through the same seed, reconciliation, and exact-ref custody model as the other TreeSeed repositories. Their hosted deployment remains fail-closed until the reviewed OpenTofu topology restores it. ## CRITICAL: simplicity and non-duplication are mandatory From ec704b026bcf1648c43d7b5504da549674b56f6e Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Thu, 1 Oct 2026 22:26:52 -0400 Subject: [PATCH 498/501] Require complete unit and integration suites before acceptance --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index 9339d317..2c6b0d46 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,6 +11,7 @@ Every behavior, contract, state transition, failure path, and edge case must hav - For every defect, first add a focused regression that reproduces the failure, then add or strengthen the corresponding integration and scene/guarantee cases. Fix the earliest owning contract. Retain previously covered behavior and all historical failed evidence. - Never weaken assertions, remove negative cases, narrow acceptance criteria, disable type checks, extend deadlines, increase allowances, or relabel failures as passes to get green results. An unexpected agent timeout is a fatal architecture defect: agents must check authoritative remaining time frequently, reserve verification/closeout time, and produce authorized continuation proposals for unfinished work before the original deadline. - Delivery requires passing evidence at all three layers on the exact candidate. Missing environments, credentials, skipped tests, or blocked layers remain explicitly unproven. Component passes, suite totals, line coverage, and process completion never substitute for full semantic acceptance. +- Before EVERY acceptance run (scene or guarantee), run ALL automated unit and integration tests for every participating project on the exact candidate. Focused regressions are additional checks, not substitutes for the complete suites. Failed, skipped, missing, empty, or inconclusive prerequisite coverage blocks acceptance; never launch a live campaign first and discover prerequisite failures afterward. Run the complete suites once per participating project per acceptance invocation, before any scene begins; do not reuse a previous invocation's passing receipt or omit tests to save time. Preserve exact command, candidate, run, and result evidence in the existing Issue and Actions artifacts. - Keep the behavior-to-unit/integration/scene mapping and exact command, commit, run, and artifact evidence in the existing Issue body and Actions artifacts. Reproduce failures with cheap focused tests before another expensive activation or full campaign; batch known fixes, inspect failed jobs, and reuse only unchanged immutable evidence. No duplicate campaigns or new coverage side channels. ## Agent configuration and handler ownership From 51eab9bd7be30303a8c140314281caf556bcad70 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Fri, 2 Oct 2026 16:59:29 -0400 Subject: [PATCH 499/501] docs: reconcile single workday report and expected maximum estimates --- docs/agent-assignments.md | 2 +- docs/agent.schema.yml | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index 2ae2456d..fc3b3f73 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -102,7 +102,7 @@ A decision accepts one exact proposal revision and digest. There is no separate A proposal may be decided only when: -- every executable work item has an activity, agent class, workspace mode, review policy, objective, valid minimum/expected/maximum estimate, and acceptance criteria; +- every executable work item has an activity, agent class, workspace mode, review policy, objective, a valid expected/maximum estimate (`expectedSeconds <= maximumSeconds`), and acceptance criteria; - every required review has its own valid estimate and bounded maximum cycle count; - the selected workspace and required authority fit the activity profile's permission ceiling and team/project policy; - every work-specific dependency references another work item in the same plan and the plan is acyclic; diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 0163e7ff..63fd44d1 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -1946,6 +1946,16 @@ $defs: $ref: "#/$defs/Timestamp" endedAt: $ref: "#/$defs/Timestamp" + reportRef: + # One exact committed closeout note, never a per-project report map. + $ref: "#/$defs/TreeDxReference" + allOf: + - if: + required: [state] + properties: + state: {const: ended} + then: + required: [reportRef] additionalProperties: false # --------------------------------------------------------------------------- From 42a67d98207211f3b84018d04af8c58090645d97 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Sun, 4 Oct 2026 19:42:00 -0400 Subject: [PATCH 500/501] docs: define governed work-item priority for derived execution nodes Human-approved canonical authority; capacity-provider execution continuation API #491. Other historical documentation edits remain unstaged. --- docs/agent.schema.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/agent.schema.yml b/docs/agent.schema.yml index 63fd44d1..7e364208 100644 --- a/docs/agent.schema.yml +++ b/docs/agent.schema.yml @@ -500,6 +500,16 @@ $defs: enum: [required, none] objective: $ref: "#/$defs/NonEmptyText" + priority: &canonicalWorkPriority + type: integer + minimum: -9007199254740991 + maximum: 9007199254740991 + description: >- + Governed work-item priority projected unchanged onto its Actor and + Reviewer nodes. Higher integers rank first only within the eligible + project and agent class selected by weighted fair admission. Omission + means zero; priority never bypasses readiness, permission, provider, + concurrency, or productive-window gates. estimate: $ref: "#/$defs/Estimate" reviewEstimate: @@ -2090,6 +2100,7 @@ $defs: graphRevisionUpdated: type: integer minimum: 1 + priority: *canonicalWorkPriority allOf: - if: type: object From ecc3d5300167a3eac5df741da7db1f0b4cb84935 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Mon, 5 Oct 2026 18:46:20 -0400 Subject: [PATCH 501/501] docs: preserve capacity execution oracle clarifications and failed evidence (#626) --- docs/agent-architecture.md | 39 ++++++++++++++++++++++++++++++++++++-- docs/agent-assignments.md | 8 ++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 98e0ff95..8eeb5d12 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -394,7 +394,7 @@ Among eligible nodes: 1. select the project furthest below its weighted share of actual admitted seconds; 2. within it, select the agent class furthest below its weighted share; -3. within that class, select graph priority then oldest readiness using stable ties; and +3. within that class, select canonical integer node priority projected unchanged from the governed Proposal work item (higher first, omission means zero), then oldest readiness using stable ties; and 4. select the eligible provider with available concurrency and the least recent fair usage. Unused weighted share flows automatically to other ready work. Add a strict cap only for a verified external limit. @@ -431,7 +431,7 @@ Acceptance: - [x] Implement the single AgentKernel entry point and build-time handler registry. - [x] Route the existing isolated provider transport through AgentKernel. - [x] Compile exact grants within the activity ceiling and team/project policy; block admission when required authority is unavailable. -- [x] Enforce immutable assignment grants at runtime-service calls and validate the one result contract. +- [ ] Enforce immutable assignment grants at runtime-service calls and validate the one result contract. BLOCKED: Agent312's native Kernel regressions permit handler-side source-write grant/path widening and deadline mutation before real Git publication. - [x] Implement deterministic `ReporterHandler` with no model dependency. - [x] Commit the report through TreeDX and return its ordinary exact reference. - [ ] Remove Reporter-specific scheduling/provider behavior. @@ -550,6 +550,41 @@ Stop and record a blocker if exact authority, isolation, project access, provide ### Current active blocker +- Human-approved priority clarification (October 4): the governed Proposal work item owns optional safe integer priority, projected unchanged onto its Actor and Reviewer nodes; higher values rank first only after eligibility and project/class fairness, and omission means zero. SDK validation/selection, native API producer/persistence/admission, and managed historical selection replay tests are authored in [API #490](https://github.com/treeseed-ai/api/issues/490), but remain unexecuted. This target clarification is not an implementation or passing acceptance claim. + +- Architecture-first test correction (October 2): [Agent312](https://github.com/treeseed-ai/agent/issues/312) now tests profile-owned instructions, class-rename invariance, exact-grant output selection, explicit integration, ordinary deterministic-handler admission/closure, immutable grants/paths/deadlines, and identity-neutral observed verification through native Node/Kernel/Git/runner boundaries. Focused regressions reproduce violations; component scene bindings are declared, not executed acceptance. Per the direct user instruction, unrelated testing and Agent319 delivery are held while these architectural gates are corrected. Full architecture/assignment acceptance remains open; the older observations below are historical, not the current frontier. + +- The same test-first audit now reproduces API name-dependent reporting and wrongly scoped lifecycle edges through actual SQL persistence. Seven existing graph guarantee contracts were corrected to the desired architecture, but remain planned without complete executable CLI/managed proof. API strict checking still fails on existing source/dependency declarations; no check was disabled. All three test layers must be aligned before product repair or unrelated testing resumes; implementation failures must not change the test oracle. + +- SDK schema regressions now reject the implementation-generated five-model subset as complete target verification. Native Git-backed repository verification currently accepts incomplete declarations and unchecked assignment definitions; union/exclusion constraints are also ignored. The previously excluded schema test is now in the active suite. Whole-target equivalence and CLI/managed semantic acceptance remain unproven; local component bindings do not close the Phase 1 gate ([Agent312](https://github.com/treeseed-ai/agent/issues/312)). + +- The SDK tests now consume the exact tracked canonical document through declared development-workspace authority, without copying its model registry. The unchanged canonical input passes, while target-derived definition, field, required-field, closure, reference and conditional mutations expose ignored contracts; real Git commits reproduce undetected stored/runtime definition changes. These are focused failing tests, not whole-system equivalence or executed managed acceptance. Missing canonical input blocks coverage, and standalone CI input wiring remains open. Product work stays held under the pure test-first gate. + +- Calibration tests now prove exact eligible sample selection, hard-ceiling arithmetic, independent public SDK execution, and original-DDL SQL selection without changing persisted graph or reservation authority. The managed read-back verifier rejects absent or malformed allocation receipts and immutable-limit drift after three genuine verifier regressions. These component and verifier-unit passes do not prove live sample custody, atomic admission, concurrent fairness, or complete managed acceptance; the all-three-layer architectural test gate remains open (Agent312). + +- Proposal-readiness tests now reject estimate-only scope, malformed review bounds, coerced estimates, and non-local or cyclic dependency graphs. Native Git/SQL/official-client tests preserve exact source bytes through repeated and concurrent reads, and expose the SDK's rejection of a canonical optional-capability omission. The existing managed graph verifier now requires exact typed Proposal and Decision authorities after a genuine verifier regression. These focused diagnostics and declared component bindings do not prove profile-grant admission, independent content joins, or complete managed acceptance; product repair stays held (Agent312). Package-owned test branches now reside in durable Git worktrees outside `/tmp`; diagnostic reports remain separate. + +- Decision-authority tests now reproduce acceptance of an operational SQL substitute without governed Decision content, unassigned review makers, conflicting dispositions, and out-of-window review evidence through unit and original-DDL/native content-reader boundaries. The existing managed verifier independently reads proposal and final review Decisions and checks exact source/candidate/identity/time after genuine verifier-unit failures. Its synthetic unit passes and component bindings are not live acceptance, full decision-policy/evidence retrieval, or complete three-layer alignment. Preserve the REDs and keep product repair held (Agent312). + +- Admission-replay tests now reproduce acceptance of changed grants, profiles, source/decision authority, runtime builds, deadlines, graph context, estimates and unrelated principals through unit and original-DDL/owning SQL repository boundaries. Exact replay remains read-only. The managed verifier now checks typed grants against frozen ceilings, context and one mutable workspace after six genuine verifier regressions. These checks do not prove independent policy retrieval, initial atomic admission, authenticated transport, provider isolation or full managed acceptance; the all-three-layer test-first gate remains open (Agent312). + +- Planning tests now require exact cycle membership, unchanged source context, all eight predecessor result identities and exact published contribution read-back. Native configured-Writer/content-serialization/Git tests reproduce publication with omitted, ID-only or foreign contribution evidence. The actual managed verifier and campaign monitor were strengthened after failing verifier regressions; later and terminal collaboration must be rechecked. Controlled transport responses are not live model/clock/usage proof, structural citations do not establish material correctness, and full per-event monitoring and three-layer alignment remain open. Product repair stays held (Agent312). +- Workday-observation tests now reproduce missing/unavailable/malformed scheduling and incomplete/moving event evidence being accepted, including failure counts hidden by a completed run. The actual campaign assertions fail closed after verifier REDs. Original-DDL SQL/API reads prove a failed event can reside beyond the first 50-event page, while SDK and independent native CLI regressions still fail because the existing paginated event operation has no command binding. No product repair, live campaign or full transition-snapshot/semantic-join proof; architecture test completion remains open (Agent312). +- Assignment-collection regressions now require explicit terminal page authority, exact cursor/row binding, ordered unique records and original workday clocks. The actual managed read-back gate was strengthened after verifier REDs; original-DDL SQL/service and independent native CLI tests read a failed assignment beyond page 50. These scoped diagnostics do not prove hidden-tail producer completeness, all-attempt usage pagination, independently expected assignment semantics or full managed acceptance. Product repair remains held while three-layer architecture test alignment is open (Agent312). +- Usage-collection regressions now require complete scoped pages, finite measured time/native usage and accounting-mode authority rather than an ID suffix. The actual managed assertions were strengthened after verifier REDs; original-DDL SQL/service tests still admit a corrupt creation clock and zero recorded active time with positive elapsed time. Native CLI page read-back is scoped transport proof, not actual provider usage, canonical UsageSettlement equivalence, timestamp agreement, transactional exactly-once settlement or full managed acceptance. Those three-layer gaps remain open (Agent312). +- Settlement authority regressions now reproduce accepted native/provider/model replay changes, coerced attempt identities, incomplete frozen attempts and corrupt native units through the actual owning accounting functions and transactional SQL. Matching retry, real late-write rollback/retry and truthful overrun/no-cap-raise controls pass only at their scoped boundaries. The managed gate now compares aggregate measurements with completed-result usage; provider-generated measurements, independent clock agreement, full canonical settlements, separate-server concurrency and durable teardown remain unproven. Product repairs remain held (Agent312). +- Provider-facing accounting tests now reproduce coerced values, conflicting provider identity, invalid nonterminal accounting modes and lost incremental token counts through the owning service and original SQL. Matching incremental/terminal replay, cleanup replay and refusal of zero-release with unaccounted seconds pass only at those isolated boundaries. Managed assertions were strengthened after verifier REDs to reject informational productive time and incremental seconds outside the sole attempt or above its aggregate. Authentication, live provider usage, canonical settlement and complete recovery/teardown remain open; API395 preserves continuing evidence because Agent312 is at its body limit. Product repairs stay held. +- Cancellation/recovery tests now reproduce fabricated zero settlement after a stored execution clock started, unsafe retry classification with unknown productive usage, and a real recovery SQL parameter failure. Active cancellation remains a request and measured cleanup replay stays exactly once at the isolated SQL boundary. The managed stopped gate now rejects zero usage after visible productive time following a verifier RED. Full canonical attempt/settlement joins, provider-generated measurements, authenticated transport, server concurrency and physical durable teardown remain unproven; all-three-layer alignment and product repairs stay held (API395). +- Workday-level SQL tests also reproduce zero-usage terminalization after productive execution and a false complete-cleanup result with an orphan running node. Scoped lease preservation, measured cleanup replay, actual transition rollback/retry, and continued recovery past a corrupt historical run pass only at their isolated boundaries. The managed stopped verifier now rejects retained lease state, expiry and renewal after a verifier RED; historical runner identity alone is not an open-session receipt. Physical cleanup, independent graph/resource joins and full acceptance remain open. API395 retains the exact failed evidence; product repair remains held. + +- Workspace cleanup tests now reproduce an open remote resource being skipped after SQL handle revocation, an interrupted operator close not being retried, unqualified upstream 404 denial being accepted as absence, and success responses being accepted without exact closed-resource agreement. Real owning SQL and the official TreeDX HTTP client exercise a controlled endpoint, not a native TreeDX server or physical sandbox. Managed verifier regressions also exposed issued or malformed handles despite claimed verified teardown; the acceptance-only checks now deny those contradictions. Independent resource/session closure and the all-three-layer test gate remain open; exact failures are preserved in API395. +- Independent workspace read-back tests now reproduce successful public API replies with a foreign or missing workspace identity despite the correct repository. Exact open/closed reads and scope denials pass through the owning catalog, original SQL and official client against controlled HTTP resources. Five managed-verifier regressions exposed missing independent reads; its terminal gates now require an exact closed resource and project receipt through the existing project-scoped CLI command, failing closed on unavailable or denied reads. Native CLI transport tests preserve both open status and denials; they do not prove native TreeDX, physical workspace/session teardown or complete acceptance. All-three-layer alignment and product repair remain held (API395). +- Provider terminal-report tests now reproduce synthesized or coerced performance facts, a changed terminal attempt ordinal, and SQL revocation while an independently read workspace remains open. Original transactional SQL preserves matching replay and rolls back an injected late revocation failure; controlled upstream resources and supplied usage are not native provider or physical cleanup proof. Two managed-verifier regressions exposed missing immutable-ordinal joins; the acceptance-only gate now checks the presented assignment and measurement against that ordinal. Retry/recovery races, complete canonical records, generated usage and full scene acceptance remain open; product repair stays held (API395). +- Provider-return SQL tests now reproduce an unchanged retry node revision with a rewritten historical attempt ordinal, missing measured settlement, and duplicate successful transitions/graph revisions from concurrent matching reports. Wrong-owner/token/expired-return denials and sequential replay remain read-only at the isolated SQL boundary. A managed-verifier regression exposed acceptance of returned history at the completed retry's same node revision; the acceptance-only graph gate now rejects that contradiction. Embedded SQL concurrency and supplied measurements are not independent PostgreSQL connections, actual provider charges or full scene proof. All-three-layer alignment and product repair remain held (API395). +- Successful-completion tests now reproduce accepted canonical result clocks before the original start or beyond the original productive/reporting interval. The actual provider sequence settles usage before completion; an initial unsupported expectation that completion itself creates that charge is preserved as an oracle error, not a product failure. The managed result gate rejects missing or contradictory clocks after a verifier RED. Exact Git content, independently generated clock/usage evidence, separate-server races, canonical settlements and physical cleanup remain unproven; scoped SQL and component declarations do not complete three-layer acceptance. Product repairs remain held (API395). + +- Source-publication receipt tests now reproduce accepted foreign repositories and branches through the owning wrapper and real broker client with isolated Git. The endpoint is a controlled input, not the actual Deployment broker or its authorization/verifier. After a genuine verifier RED, the managed results gate requires a Git candidate in the sole immutable repository and agreement for any presented optional branch; read-only citations remain valid. Native broker publication, base/grant/path verification, sandbox closure, complete canonical content read-back and full scene proof remain open. Product receipt failures are preserved in API395; product repair stays held. + - Native Reporter closure is proven by the passing continuation; SDK #347/#348 calibration and Agent #277/#278 observed-red evidence repairs are integrated. Fresh DR stopped before acting when a chat response lacked its exact invocation binding. API #468/#469 repairs a reproduced denied-admission binding defect with package-owned SQL scenes; checked staging delivery and live proof remain required. DR's missing teardown receipt remains failed evidence, not proof of a physical leak. No full SDK pass (Platform #520). ### Next acceptance milestone diff --git a/docs/agent-assignments.md b/docs/agent-assignments.md index fc3b3f73..30003af5 100644 --- a/docs/agent-assignments.md +++ b/docs/agent-assignments.md @@ -98,6 +98,8 @@ Agents may estimate several work items in one planning contribution, and several A decision accepts one exact proposal revision and digest. There is no separate execution-plan record, structured-estimate database authority, or decision-time plan reconstruction. +An optional safe integer `priority` on the governed work item is the sole priority authority. Projection carries that value unchanged onto its Actor and Reviewer nodes; omission means zero for selection. Higher priority ranks first only after provider eligibility and project/class fairness. Profiles, providers, and operational node edits do not define another priority. + ### Proposal readiness A proposal may be decided only when: @@ -437,6 +439,12 @@ This plan adds only assignment-specific responsibilities to the ownership table ### Current active blocker +- Architecture-first test correction (October 2): [Agent312](https://github.com/treeseed-ai/agent/issues/312) reproduces handler-side grant/path widening and deadline mutation through real isolated Git publications, implicit integration guidance outside an explicit integration assignment, and name-dependent handling of native failed verification. The original assignment input remains unchanged, which does not prove immutable authority inside the Kernel. The architecture plan records the reopened enforcement gate. These focused failures block further unrelated testing; proposal/graph/review/settlement and full CLI acceptance remain separately unproven. Preserve the historical DQ/DR evidence below; it is not the current frontier. + +- API lifecycle unit and real SQL tests now require YAML-owned activity dependencies and identity-neutral reporting, with exactly one selected workday closeout Reporter. Six focused cases fail. Existing graph guarantees now require the living team graph, exact content/decision/review authority and ordinary weighted admission, not retired group/signal graphs, deliverable manifests or capacity tiers. Their full executable acceptance coverage remains open. Pure test-first development is required after all three layers are aligned; no expectation may be changed merely to fit implementation. + +- Exact canonical-schema tests now derive stored/runtime definitions and mutation cases from the tracked target itself. Public SDK verification accepts real committed assignment/operational definition drift despite changed Git and file digests. Unit and native Git counterexamples are preserved in [Agent312](https://github.com/treeseed-ai/agent/issues/312); generated CLI, API/Agent semantic equivalence and full managed scene coverage remain open. Component bindings do not satisfy those missing layers. + - DQ proved planning, external approval and genuine Tester correction but failed re-review; that evidence repair is integrated. DR then failed chat invocation binding before acting. API #468/#469 guards binding with the exact admitted assignment; `agent-architecture.md` records delivery and receipt limitations. All six pairs, completed re-review, closeout and the product gate still require one passing fresh run; the continuation is not full acceptance (Platform #520). ### Next acceptance milestone